考虑以下简单的接口和类:
interface ITest{
id :string;
}
class SuperClass<T extends ITest>{
Start(){
var item=<ITest>{};
this.Do(item);
}
Do(item: T){
alert(item);
}
}
Run Code Online (Sandbox Code Playgroud)
该行this.Do(item)显示错误:Argument of type ITest is not assignable to type T.为什么?
Do(item: T){
alert(item);
}
Run Code Online (Sandbox Code Playgroud)
该方法Do需要一个类型为 的参数T。
var item=<ITest>{};
Run Code Online (Sandbox Code Playgroud)
item创建了一个类型为 的变量ITest。
this.Do(item);
Run Code Online (Sandbox Code Playgroud)
T延伸ITest,但ITest不延伸T。变量 item 有类型ITest,而不是类型T。
此代码编译:
Start(){
var item=<T>{};
this.Do(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10290 次 |
| 最近记录: |