我希望能够根据对类的引用在 javascript( typescript )中实例化对象。例如,我希望能够像这样使用某种工厂函数,但我不知道如何实现这个结果。
class A {
constructor() { this.b = 'somevalue'; }
}
const factory = (klass: Function) => {
return new klass();
}
const instanceOfA = factory(A);
这个例子有点做作,但有没有办法做到这一点?当前错误提示 klass 不是构造函数
。或者,如果有一种更惯用的方式从类引用中实例化事物,我很想听听。谢谢!
最佳答案
Function
只是错误的类型,使用构造函数类型(这也有助于推断正确的返回类型):
function factory<T>(klass: { new(): T }): T {
return new klass();
}
或者作为一个 const
你分配给:
const factory = <T>(klass: { new(): T }) => {
return new klass();
};
关于javascript - 如何从类引用中实例化一个 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739710/