TypeScript TS7015:元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型

Ole Spaarmann:

我在Angular 2应用中收到此编译错误:

TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.

导致它的代码是:

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> = [];

但是有人提到问题是试图将字符串类型用作数组中的索引,因此我应该使用映射。但是我不确定该怎么做。

谢谢您的帮助!

Nitzan Tomer:

如果您想要键/值数据结构,请不要使用数组。

您可以使用常规对象:

private applicationsByState: { [key: string]: any[] } = {};

getApplicationCount(state: string) {
    return this.applicationsByState[state] ? this.applicationsByState[state].length : 0;
}

或者您可以使用Map

private applicationsByState: Map<string, any[]> = new Map<string, any[]>();

getApplicationCount(state: string) {
    return this.applicationsByState.has(state) ? this.applicationsByState.get(state).length : 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeScript-元素隐式地具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

元素隐式具有“任意”类型,因为类型“字符串”的表达式不能用于索引

使用字符串类型参数访问枚举时,TypeScript TS7015错误

map()中的Typescript错误:元素隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

TypeScript:对象类型的索引签名隐式具有“ any”类型

TypeScript + ES6 Map +对象类型的索引签名隐式具有“ any”类型

Build:元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型

元素隐式地具有“ any”类型,因为在打字稿中将字符串转换为enum时,索引表达式不是enum的“ number”类型

元素隐式具有“ any”类型,因为索引表达式不是“ number”类型[7015]

Typescript-React State:元素隐式具有“ any”类型,因为类型“ State”没有索引签名

TypeScript / ReactJS / setTimeout:'this'隐式地具有'any'类型,因为它没有类型注释。

Vuex Typescript我收到错误“成员'someMutation'隐式具有'any'类型”。在Component.ts文件中

绑定元素'Component'隐式具有'any'类型.ts

元素隐式地具有“ any”类型,因为类型为string | 数字不能用于索引类型

React Typescript:元素隐式地具有“ any”类型,因为类型没有索引签名

元素隐式地具有“ any”类型,因为类型“ any”的表达式不能用于索引类型

元素隐式地具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

Typescript和Redux:绑定元素“字符串”隐式具有“任意”类型

元素隐式具有“任意”类型,因为类型“字符串”的表达式不能用于索引类型A

Node + TypeScript:“ this”隐式具有类型“ any”

带有React> Element的Typescript隐式具有'any'类型,因为类型'string'的表达式不能用于索引

Object.keys迭代导致Typescript错误“元素隐式具有'any'类型,因为索引表达式不是'number'类型”

Typescript错误:元素隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

元素隐式具有“ any”类型,因为ANGULAR中的type表达式

元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型。-索引签名错误

TypeScript:隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

无法将lambda表达式转换为“字符串”类型,因为它不是具有NotifyOfPropertyChange的委托类型

Typescript-索引表达式参数的类型必须为'string','number','symbol'或'any'

Typescript:TS7017对象类型的索引签名在循环中隐式具有“ any”类型