我在我的 Angular 2 应用程序中收到此编译错误:
TS7015:元素隐式具有“任何”类型,因为索引表达式不是“数字”类型。
导致它的代码是:
getApplicationCount(state:string) {
return this.applicationsByState[state] ? this.applicationsByState[state].length : 0;
}
但是,这不会导致此错误:
getApplicationCount(state:string) {
return this.applicationsByState[<any>state] ? this.applicationsByState[<any>state].length : 0;
}
这对我来说没有任何意义。我想在第一次定义属性时解决它。目前我正在写:
private applicationsByState: Array<any> = [];
但有人提到问题是试图使用字符串类型作为数组中的索引,我应该使用映射。但我不知道该怎么做。
感谢您的帮助!
原文由 Ole Spaarmann 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你想要一个键/值数据结构,那么不要使用数组。
您可以使用常规对象:
或者您可以使用 Map :