TypeScript - get アクセサだけを定義したメンバへの代入でコンパイルエラーにならない
get アクセサだけを定義したメンバに値を代入してもコンパイルエラーにならないようです。
サンプルコードです。
class Sample { private _value: number; constructor(value: number) { this._value = value; } // get アクセサだけ定義 get value() { return this._value; } } var sample = new Sample(1); // コンパイルエラーにならない sample.value = 2; // valueは更新されない alert(sample.value); // 1
sample.value = 2;
の部分でコンパイルエラーになるのかと思ったのですが、実際にはコンパイルエラーになりません。sample.value
の値は変更されずもとのままです。TypeScript 0.9.5 で確認。
この動きで正しいのでしょうか、私が何か勘違いしているのでしょうか。うっかりハマりそうです・・・。
set アクセサも定義すると想像通りの動きなんですけどね。
class Sample { private _value: number; constructor(value: number) { this._value = value; } get value() { return this._value; } set value(param: number) { this._value = param; } } var sample = new Sample(1); sample.value = 2; alert(sample.value); // 2