在TypeScript中,我使用类似Java的类型Class
:
interface Class<T = void> {
new(...args: any[]): T;
}
但是,这种类型不适用于抽象类:
abstract class Bar {}
class Foo {
test(clazz: Class) { }
doIt() {
this.test(Bar);//ERROR
}
}
我得到的误差是Argument of type 'typeof Bar' is not assignable to parameter of type 'Class<void>'
.如果类栏不是抽象的,那么一切都正常.
我理解,问题是我们说可以使用new
运算符,但不能对抽象类使用这个运算符.然而,我需要一个类型,它可以同时适用于非抽象类和抽象类(抽象类也是类).如果可能的话,有人能说怎么做吗?