Typescript - 指定类型的对象不能分配给泛型类型

时间:2015-04-17 11:02:58

标签: typescript

考虑以下简单的界面和类:

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。为什么呢?

1 个答案:

答案 0 :(得分:4)

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);
}