我试图使用"集合" (这个范例实际上是什么样的?)在打字稿中并强烈输入。在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的范例吗?
这个范例叫做什么?
有更好的方法吗?
答案 0 :(得分:2)
您在这里使用的结构看起来像字典。请尝试以下方法:
var days : { [key: string]: dayType; } = {};
days[moment().day('monday')] = new dayType('Monday');
您还可以使用界面进行简写:
interface dayDictionary {
[key: string]: dayType;
}
var days: dayDictionary = { };