我正试图在打字稿中使用“集合”(这个范例实际上叫做什么?)并强制输入它们 . 在javascript中我会写这样的东西 .
var array = [1,2,3,4];
var collection = {};
for(var x in array){
collection['item-'+x] = x;
}
我有一个对象,我使用这个 collection[name]
语法添加/删除元素 .
这很好,因为我不需要关心索引 . 现在,在我创建一个数组时,我可以声明它并给它一个类型 .
let array: string[] = [];
这将如何等同于此集合语法,例如我有一个这样的集合 .
var days = {};
days[moment().day('monday')] = new dayType('Monday');
days[moment().day('tuesday')] = new dayType('Tuesday');
这很好用,但是如果我访问我的集合 days[moment().day('monday')].Name
我不知道这实际上是我的dayType类还是只有一个 Name
属性的对象 . 与属性名称相同 . 我可以添加 days['July']: = false;
就好了,即使这在我的对象的上下文中没有意义 .
这只是一个不适合typeScript的范例吗?
这个范例叫做什么?
有更好的方法吗?
1 回答
您在这里使用的结构看起来像字典 . 请尝试以下方法:
您还可以使用界面进行简写:
见:TypeScript Objects as Dictionary types as in C#