TypeScript private field

TypeScript は private が使える

class Animal {
  private name: string;

  constructor(theName: string) {
    this.name = theName;
  }
}

TypeScript: Handbook - Classes

Yet another private

TypeScript 3.8 からJS標準のprivateも使える。

class Animal {
  #name: string;
  constructor(theName: string) {
    this.#name = theName;
  }
}

# を使ったprivate宣言については下記参照。

Private class fields - JavaScript | MDN

ハードプライベート vs ソフトプライベート

  • #: ハードプライベート
  • private: ソフトプライベート by TS

と言うらしい。

TypeScript 3.8の新機能「ハードプライベート」と従来の「ソフトプライベート」を比べてみた - Qiita