【发布时间】:2016-04-14 01:44:25
【问题描述】:
我有定义了 style 和 styleType 属性的 Base 类。有一个 Better 类扩展了 Base 类,它用另一个值覆盖了 styleType。
是否可以在 Base 类中创建样式实例,该样式是 Better 类中定义的 styleType?
还有,第二个问题 - Base 类中的样式获取器能否返回正确的样式类型(如果是 BetterBase 实例,则为 BetterStyle)?
class Base {
styleType:typeof Style = Style;
private _style:Style;
constructor(){
this._style = new this.styleType();
}
// how to define return type so that it would beof styleType?
public get style():Style{
return this._style;
}
}
class Style{
public color;
}
class BetterBase extends Base{
styleType:typeof BetterStyle = BetterStyle;
}
class BetterStyle extends Style{
public betterColor;
}
var betterBase = new BetterBase();
betterBase.style.color = "#FF0000";
console.log(betterBase.style); // incorrect, outputs Style, not BetterStyle
console.log(betterBase.styleType);
【问题讨论】:
标签: typescript