🔐 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 は継承先で使える
  }
}

🛠 アクセス修飾子を使う意味