Javascript 强类型typescript集合

Javascript 强类型typescript集合,javascript,types,typescript,Javascript,Types,Typescript,我试图在typescript中使用“collections”(这个范例实际上叫什么?),并将它们强类型化。在javascript中,我会编写类似这样的内容 var array = [1,2,3,4]; var collection = {}; for(var x in array){ collection['item-'+x] = x; } var days = {}; days[moment().day('monday')] = new dayType('Monday'); days

我试图在typescript中使用“collections”(这个范例实际上叫什么?),并将它们强类型化。在javascript中,我会编写类似这样的内容

var array = [1,2,3,4];
var collection = {};

for(var x in array){
  collection['item-'+x] = x;
}
var days = {};

days[moment().day('monday')] = new dayType('Monday');
days[moment().day('tuesday')] = new dayType('Tuesday');
我有一个对象,我使用这个
collection[name]
语法添加/删除元素

这很好,因为我不需要关心索引。 现在在typescript中,当我创建一个数组时,我可以声明它并给它一个类型

let array: string[] = [];
这与这个集合语法有什么关系,例如,我有一个这样的集合

var array = [1,2,3,4];
var collection = {};

for(var x in array){
  collection['item-'+x] = x;
}
var days = {};

days[moment().day('monday')] = new dayType('Monday');
days[moment().day('tuesday')] = new dayType('Tuesday');
这非常有效,但是如果我访问我的集合
days[moment().day('monday')].Name
我不知道这到底是我的dayType类还是一个带有
Name
属性的对象。属性名也是一样的。我可以添加
天['July']:=false很好,即使这在我的对象上下文中没有意义

这只是一个不适合typeScript的范例吗

这个范例叫什么


有更好的方法吗?

您在这里使用的结构看起来像一本字典。请尝试以下操作:

var days : { [key: string]: dayType; } = {};

days[moment().day('monday')] = new dayType('Monday');
您还可以使用界面进行速记:

interface dayDictionary {
    [key: string]: dayType;
}

var days: dayDictionary = { };

请参阅:

可能重复的感谢!接口将完美工作,从现在起我将不得不使用它。