TypeScriptで#を使ってプライベートプロパティを設定

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)を提供します。

まとめ

#記号を使用することで、シンボルを使う場合よりも簡潔にプライベートプロパティを設定することができます。
また、#記号を使ったプライベートプロパティは、クラス外部からはアクセスできないため、より安全です。