2016-07-05 51 views
1

我希望能夠引用對象/字典中的值爲myDictionary.SOME_VALUE。這可以通過一種不需要爲事先列出每個屬性值的對象指定類型來完成嗎?舉例來說,如果這是與字符串鍵的字典,我知道,語法是在TypeScript對象中輸入任意未加引號的屬性名稱?

var myDictionary : {[id:string]:number} = {'a':1, 'b':2} 

有沒有一種方法來定義一個類型,讓我任意未加引號做以下

var myDictionary = {a:1, b:2} 

屬性名稱,而不需要明確的接口/類型定義(例如:type myDictType = {a:number, b:number})?

回答

2
var myDictionary : {[id:string]:number} = {a:1, b:2} compiles just fine. 

myDictionary.a沒有,因爲打字稿創想真正字典訪問像您使用的是動態密鑰。

不幸的是,只允許您訪問不帶括號表示法的任意屬性的唯一類型是any

+0

注意:對於TS 2.1,您還可以使用Record ,即使記錄旨在具有更精確的一組按鍵,它可以很方便且更易於閱讀。 – AlexG