this._size
套
this.__size
Size | undefined
到
Size
return this.__size
说有一个类型不匹配
. 我可以断言类型为
return this.__size!;
,但如果可能的话,我想避免这样做(公司风格的指导原则)。
class Shape {
private __size?: Size;
protected get _size(): Size {
if (!this.__size)
{
this._size = this.onCalculateSize(); // returns `Size`
}
return this.__size;
}
protected set _size(value: Size)
{
this.__size = value;
this.onSizeChanged();
}
protected onSizeChanged(): void { }
protected onCalculateSize(): Size { return new Size(...); }
}
onCalculateSize
允许子类在不修改属性逻辑的情况下拥有自己的实现。