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

Typescript - object of specified type is not assignable to generic type

考虑以下简单界面和 class:

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