在Javascript中,我可以使用对象定义集合,如下所示:
var myArray = {};
myArray['some-key1'] = new CustomObject('param1');
myArray['some-key2'] = new CustomObject('param2');
myArray['some-key3'] = new CustomObject('param3');
在TypeScript中,我可以根据对象的属性设置一个集合,比如Javascript吗?
另一个问题,如果我在一个集合中有100个元素,那么更快 - 将这些项存储在经典数组(myarray.push(instanceObj)
)中,还是将它们存储为对象的属性?
答案 0 :(得分:1)
如果你有固定数量的钥匙,最好的办法是:
const myObject = {
"some-key1": new CustomObject("param1"),
"some-key2": new CustomObject("param2"),
"some-key3": new CustomObject("param3"),
}
请注意,现在甚至像这样的类型检查:
myObject["some-key1"] // TypeScript correctly infers the type to be CustomObject!
如果您不能这样做,最好的方法是使用索引类型:
let myObject: { [key: string]: CustomObject };
向TypeScript指示myObject将字符串映射到CustomObjects。
另一个问题,如果我在一个集合中有100个元素,那么更快 - 将这些项存储在经典数组(myarray.push(instanceObj))中,还是将它们存储为对象的属性?
这实际上取决于你计划对数组/对象做什么。你的用例是什么?