【发布时间】:2016-12-08 06:27:22
【问题描述】:
我正在尝试在打字稿中使用“集合”(这种范式实际上叫什么?)并对其进行强类型化。在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 的范式吗?
这个范式叫什么?
有更好的方法吗?
【问题讨论】:
标签: javascript types typescript