打字稿 - 指定类型的对象是不分配给通用型
问题描述:
求索下面的简单接口和一个类:打字稿 - 指定类型的对象是不分配给通用型
interface ITest{
id :string;
}
class SuperClass<T extends ITest>{
Start(){
var item=<ITest>{};
this.Do(item);
}
Do(item: T){
alert(item);
}
}
线与this.Do(item)
显示了错误:Argument of type ITest is not assignable to type T
。为什么?
答
Do(item: T){
alert(item);
}
Do
预计T
类型的参数的方法。
var item=<ITest>{};
可变item
创建ITest
类型的。
this.Do(item);
T
延伸ITest
,但ITest
没有延伸T
。变量项目类型为ITest
,而不是类型T
。
此代码编译:
Start(){
var item=<T>{};
this.Do(item);
}