Typescript 为什么可以';如果引用类型是具有泛型的父类,我是否将对派生类的引用分配给变量?

Typescript 为什么可以';如果引用类型是具有泛型的父类,我是否将对派生类的引用分配给变量?,typescript,Typescript,如果引用类型是具有泛型的父类,为什么不能将对派生类的引用指定给变量 interface IModel { id?: number; } class Model<T extends IModel> { public data: T; constructor(data: T) { this.data = data; } } interface IConcretModel extends IModel { name: string

如果引用类型是具有泛型的父类,为什么不能将对派生类的引用指定给变量

interface IModel {
    id?: number;
}

class Model<T extends IModel> {
    public data: T;
    constructor(data: T) {
        this.data = data;
    }
}

interface IConcretModel extends IModel {
    name: string;
}

class ConcretModel extends Model<IConcretModel> {
    static sm1() { }
}

let a: typeof Model;

a = ConcretModel;

当您将变量输入为
typeof Model
时,该类将保持为泛型,例如,您可以编写:

let a: typeof Model;
new a<IConcretModel>(null)
let a: typeof Model;
new a<IConcretModel>(null)
let a: new (data: IModel) => Model<IModel>;

a = ConcretModel;