在TypeScript对象中键入任意不带引号的属性名称?

时间:2016-07-05 18:38:08

标签: typescript

我希望能够将对象/字典中的值引用为myDictionary.SOME_VALUE。这可以通过一种不要求我为事先指定每个属性值的对象指定类型的方式来完成吗?例如,如果这是一个包含字符串键的字典,我知道语法是

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

有没有办法定义允许我执行以下操作的类型

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

对于任意不带引号的属性名称,不需要显式接口/类型定义(例如:type myDictType = {a:number, b:number})?

1 个答案:

答案 0 :(得分:2)

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

但是

myDictionary.a没有,因为打字稿创建者希望字典访问真的看起来像,就像你使用动态密钥一样。

唯一允许您在没有括号表示法的情况下访问任意属性的类型是any,不幸的是。{/ p>