在抽象类Typescript的构造函数中创建新的泛型类



可以在抽象类构造函数中创建类的新实例吗?

像这样:

export abstract class BaseClass<T> {
constructor(protected genericClass = new T());
}

或者这只是一个真正愚蠢的问题?

看情况。在您的示例中,由于在运行时无法访问任何类型信息,因此无法知道要实例化哪个类。如果没有更多的信息,

解决这个问题的方法是提供构造函数。我不确定它的用法,但下面是它的工作原理:

export abstract class BaseClass<T> {
constructor(cls: { new (): T }, protected genericClass = new cls()) {}
}
class MyClass {
readonly value: number = 1;
}
class ExtendBaseClass extends BaseClass<MyClass> {
constructor() {
super(MyClass);
}
accessGenericClass() {
return this.genericClass.value;
}
}

最新更新