在抽象 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;
  }
}