【发布时间】:2017-09-06 21:54:43
【问题描述】:
以下关于泛型的问题:Typescript generics: Argument of type 'X' is not assignable to parameter of type 'T':
下面代码中的get list() 和protected _list 被添加到每个类中,只是为了有一个正确的类型。但是,当编译为 JavaScript 时,这些方法和类属性在所有三个类中都是相同的。有没有办法告诉 Typescript 编译器跳过重复项并仅在 ClassA 中保留一个 getter/class 属性?
class ClassA {
protected _list:Array<BlueItem>;
get list(): Array<BlueItem> {
return this._list;
}
}
class ClassB extends ClassA {
protected _list:Array<GreenItem>;
get list(): Array<GreenItem> {
return this._list;
}
}
class ClassC extends ClassB {
protected _list:Array<RedItem>;
get list(): Array<RedItem> {
return this._list;
}
}
class BlueItem {
}
class GreenItem extends BlueItem {
}
class RedItem extends BlueItem {
}
【问题讨论】:
-
这样做有什么好处?
标签: typescript