【发布时间】:2018-09-01 09:24:18
【问题描述】:
TypeScript 中有没有办法为数组定义类型或接口以接受随机字符串属性?例如,在 JavaScript 中,我们可以执行以下操作:
const list = [ 1, 2, 3, 4, 5 ];
list.foo = 'bar';
console.log(a); // [ 1, 2, 3, 4, 5, foo: 'bar' ]
console.log(a[1]); // 2
console.log(a.foo); // 'bar'
我想在 TypeScript 中定义一个允许这样一个数组的接口或类型。我尝试了以下方法:
interface IList extends Array<number> {
[key: string]: string;
}
但它会产生一系列错误,即现有数组方法不可分配给类型字符串。
我可以在该界面中设置特定的键(例如,foo: string;,但我想知道是否有办法允许随机字符串属性?
【问题讨论】:
-
您有在数组中使用非数字索引的真实用例吗?这非常奇怪,并且正是 Objects 的用途。另请注意,在上面的示例中,
list.length === 5尽管有额外的foo,但迭代器(如map)不会遇到它。
标签: typescript