TypeScriptでプライベートプロパティを設定
TypeScriptではprivate修飾子を使用してプライベートプロパティを宣言できますが、
TypeScript 3.8以降では、クラスフィールドのプライベートプロパティを設定するために、#記号を使用できます。
これは、シンボルを使用するよりもシンプルで直感的な方法です。
以下に例を示します。
プライベートプロパティの設定例
class MyClass { // プライベートプロパティ #myPrivateProperty: string; constructor(value: string) { this.#myPrivateProperty = value; } // プライベートプロパティにアクセスするためのメソッド getMyPrivateProperty(): string { return this.#myPrivateProperty; } // プライベートプロパティを更新するためのメソッド setMyPrivateProperty(value: string): void { this.#myPrivateProperty = value; } } // 使用例 const instance = new MyClass('initial value'); console.log(instance.getMyPrivateProperty()); // "initial value" instance.setMyPrivateProperty('new value'); console.log(instance.getMyPrivateProperty()); // "new value"
説明
1. プライベートプロパティの宣言:
#myPrivateProperty: string;
#記号を使ってプライベートプロパティを宣言します。
これにより、このプロパティはクラス外からアクセスできなくなります。
2. コンストラクタでプロパティの初期化:
constructor(value: string) { this.#myPrivateProperty = value; }
コンストラクタ内でプライベートプロパティを初期化します。
3. プロパティにアクセスするためのメソッド:
プライベートプロパティにアクセスするためのメソッド(getMyPrivateProperty)と、プロパティを更新するためのメソッド(setMyPrivateProperty)を提供します。
まとめ
#記号を使用することで、シンボルを使う場合よりも簡潔にプライベートプロパティを設定することができます。
また、#記号を使ったプライベートプロパティは、クラス外部からはアクセスできないため、より安全です。