1.只有get 没有set的属性为readonly属性
2.新版本TS(4.3以后)不再要求set 和get的参数类型相同。
class Thing {
_size = 0;
get size(): number {
return this._size;
}
set size(value: string | number | boolean) {
let num = Number(value);
// Don't allow NaN, Infinity, etc
if (!Number.isFinite(num)) {
this._size = 0;
return;
}
this._size = num;
}
}
let thing: Thing = new Thing();
thing.size = 9988;
alert(thing.size);