Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 允许typeof接受子类_Typescript - Fatal编程技术网

Typescript 允许typeof接受子类

Typescript 允许typeof接受子类,typescript,Typescript,考虑以下四类: export class Car { } export class Mercedes extends Car { } export class Animal<T extends Car> { car: T; } export class Dog extends Animal<Mercedes> { } 现在,以下操作不起作用: let x = new MyClass(Dog); 我怎样才能做到这一点呢?要让它起作用,您需要定义MyC

考虑以下四类:

export class Car {

}

export class Mercedes extends Car {

}

export class Animal<T extends Car> {
    car: T;
}

export class Dog extends Animal<Mercedes> {

}
现在,以下操作不起作用:

let x = new MyClass(Dog);

我怎样才能做到这一点呢?

要让它起作用,您需要定义
MyClass
,如下所示:

export class MyClass<T extends Car> {
    constructor(animalClass: new() => Animal<T>) {}
}
导出类MyClass{
构造函数(animalClass:new()=>Animal){}
}
这里的
MyClass
是泛型类型,它的构造函数采用一些可以构造该泛型类型的
Animal


下面的文档介绍了这一点。

什么是“不工作”-错误?在编译时?运行时间?它不会在操场上出错();您使用的是哪个版本的TS?抱歉,原来错误来自几个更深层的类。请查看更新的问题。我还在操场上测试了代码,错误现在确实出现了。
export class MyClass<T extends Car> {
    constructor(animalClass: new() => Animal<T>) {}
}