在抽象 class Typescript 的构造函数中创建新的泛型 class
Create new generic class in constructor of abstract class Typescript
我可以在抽象 class 构造函数中创建 class 的新实例吗?
像这样:
export abstract class BaseClass<T> {
constructor(protected genericClass = new T());
}
或者这只是一个真正愚蠢的问题?
视情况而定。在您的示例中,因为在运行时您无权访问任何类型信息,所以无法知道要实例化哪个 class 。所以没有更多的信息,是不可能的
解决方法是提供构造函数。我不确定它的用途,但它是这样工作的:
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;
}
}
我可以在抽象 class 构造函数中创建 class 的新实例吗?
像这样:
export abstract class BaseClass<T> {
constructor(protected genericClass = new T());
}
或者这只是一个真正愚蠢的问题?
视情况而定。在您的示例中,因为在运行时您无权访问任何类型信息,所以无法知道要实例化哪个 class 。所以没有更多的信息,是不可能的
解决方法是提供构造函数。我不确定它的用途,但它是这样工作的:
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;
}
}