如何从类引用实例化 javascript 对象?



我希望能够从对类的引用中实例化javascript(打字稿(中的对象。例如,我希望能够像这样使用某种工厂函数,但我不知道如何实现此结果。

class A {
constructor() { this.b = 'somevalue'; }
}
const factory = (klass: Function) => {
return new klass();
}
const instanceOfA = factory(A);

这个例子相当做作,但是有没有办法做到这一点?当前错误显示klass is not a constructor。或者,如果有一种更惯用的方式来从类引用中实例化事物,我很想听听。谢谢!

Function

只是错误的类型,请使用构造函数类型(这也有助于推断正确的返回类型(:

function factory<T>(klass: { new(): T }): T {
return new klass();
}

或者作为您分配给以下const

const factory = <T>(klass: { new(): T }) => {
return new klass();
};

最新更新