🔐 TypeScript のメソッドのアクセス修飾子
✅ 基本ルール
修飾子 |
説明 |
public | どこからでも呼び出せる(デフォルト) |
private | 同じクラス内からのみ呼び出せる |
protected | 同じクラスとそのサブクラス内から呼び出せる |
🔧 サンプルコード
class Machine {
public start(): void {
console.log("スタートします");
this.checkSystem(); // ✅ OK: 同じクラス内から呼び出し
}
private checkSystem(): void {
console.log("システムをチェック中... ✅");
}
protected shutdown(): void {
console.log("シャットダウンします");
}
}
const m = new Machine();
m.start(); // ✅ OK
// m.checkSystem(); // ❌ エラー: private メソッドは外部から呼べない
// m.shutdown(); // ❌ エラー: protected メソッドも外部からは呼べない
👨🏫 継承クラスからの protected メソッド利用
class SmartMachine extends Machine {
finish(): void {
console.log("処理完了");
this.shutdown(); // ✅ OK: protected は継承先で使える
}
}
🛠 アクセス修飾子を使う意味
- private: クラス内の内部処理を隠す(カプセル化)
- protected: 継承先にだけ公開
- public: 外部 API として公開