2016-04-06 27 views
1

對象看起來像詞典和規則JavaScript對象物質的混合物:如何在TypeScript中描述這個對象的形狀?

var obj = { 
    'dynamic prop1': { }, 
    'dynamic prop2': function() { }, 
    'dynamic prop3': function() { }, 
    'dynamic prop4': function() { }, 

    func: function() {}, 
    prop: null 
}; 

大部分分配給對象的屬性將由基於字符串來表示屬性(「動態道具」),並且將包含任一對象或功能。

此外,它將包含兩個附加屬性:prop和func。

回答

1

這是一些文字,所以它不是代碼唯一的答案。

interface MyObjType { 
    [key: string]: (() => void) | { maybeYouHaveSomePropertiesToDeclare?: string }; 
    func(): void; 
    prop: any; 
} 
+0

混合字符串索引器和實際屬性有問題。編譯器說func不能分配給字符串索引器。 –

+0

字符串索引類型必須從所有屬性的類型(因此示例中顯示的聯合類型的第一部分)可分配。 –

+0

明白了!非常感謝! –