繁体   English   中英

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

[英]How do I instantiate a javascript object from class reference?

我希望能够从对类的引用中实例化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();
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM