2017-08-11 55 views
-1

僅僅通過運行時接口才能創建對象實例嗎?像在運行時通過接口創建實例

interface IModel { 
    name: string; 
} 


function createInstance() { 
    return something to make instance 
} 

console.log(createInstance()); // out: {name:null} 
+0

的接口無法構造。 –

回答

-1

其不可能的,因爲接口IST編譯js的

1

東西:

interface IModel { 
    name: string | null; 
} 

function createInstance(name: string | null): IModel { 
    return { name }; 
} 

console.log(createInstance(null)); 

code in playgound

+0

不,我想建立對象的實例。我只有接口沒有specyfic內容,並且我想將此接口作爲對象和構建對象的定義。它看起來像使用Object.assign重寫對象到對象,但接口沒有得到一個實例,直到我沒有實現一些類上的thiem並創建這個類對象,所以我的問題是「這可能」 –

+0

在javascript ** everything **是對象,即使是'{}'也是一個對象。所以我的答案中的代碼確實創建了一個對象。 'Object.assign'將會返回完全相同的結果。我不確定你在追求什麼。 –

+0

是的,但在你的代碼我必須知道編譯前的字段名稱,我試圖通過任何接口生成對象,沒有硬編碼 –

相關問題