[英]Strongly typed typescript collections
我正在尝试在打字稿中使用“集合”(实际上是什么范式?),并对它们进行强类型打字。 在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');
这很好用,但是如果我访问我的collection days[moment().day('monday')].Name
我不知道那是实际上是我的dayType类还是仅带有Name
属性的对象。 与属性名称相同。 我可以添加days['July']: = false;
很好,即使在我的对象的上下文中这没有意义。
这只是不适合TypeScript的范例吗?
这个范式叫什么?
有更好的方法吗?
您在此处使用的结构看起来像字典。 请尝试以下操作:
var days : { [key: string]: dayType; } = {};
days[moment().day('monday')] = new dayType('Monday');
您还可以使用接口作为速记:
interface dayDictionary {
[key: string]: dayType;
}
var days: dayDictionary = { };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.