TypeScriptのプロパティに専用のセッターを持たせる方法はありますか?プライベートセッターtypescript?
class Test
{
private _prop: string;
public get prop() : string
{
return this._prop;
}
private set prop(val: string)
{
//can put breakpoints here
this._prop = val;
}
}
getterとsetterの可視性が一致しないとコンパイラが警告します。私はちょうどバッキングフィールドを設定することができますが、値が設定されている場合、私はブレークポイントを設定することはできません知っている。
私はインターフェースを使ってセッターを隠すのですが、インターフェースはプロパティーを定義するだけで、セッターにゲッターがあるかどうかではありません。
ここに何か不足していますか?プライベートセッターを許可しない理由は何もないようですが、結果として生じるJSは、とにかく可視性を強制せず、現在の選択肢よりも優れているようです。
何か不足していますか?そうでない場合は、プライベートセッターのない理由がありますか?
この解決法の問題点は、+ =(および - =)演算子に 'this.prop + = 'abc'; ' – splintor
@splintorはい、他の人に値を変更させないようにしています:) –
@TobyJ私のサンプルで使用した' this'に注目してください。私は '+ ='と ' - ='をクラス内から許可して、ブレークポイントを設定することができます。 @Fentonソリューションはメソッドを追加することを提案しますが、クラス内からは '+ ='を使用して 'prop'に追加することはできません。方法は[my solution](https://stackoverflow.com/a/45909300/46635)を参照してください。 – splintor