簡體   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