Closure Compiler - 警告:找到受限索引类型:string,required:number

Jam*_*May 6 google-closure-compiler

我收到这个警告:

WARNING - restricted index type

found   : string
required: number

someArray[ index ].doSomething();
Run Code Online (Sandbox Code Playgroud)

这在闭包编译器升级到最新版本后发生.看起来封闭编译器不推荐使用数组的字符串类型索引.

这个问题的推荐解决方案是什么?

BTW.有没有办法禁用检查这些警告类型(我查看了CC标志列表,找不到任何东西)?

djj*_*eck 0

如果你的索引变量是字符串类型,你应该首先解析它。尝试

someArray[parseInt(index)].doSomething();
Run Code Online (Sandbox Code Playgroud)

此外,我假设它首先是字符串的原因是它来自 DOM 属性或 HTML 输入之类的地方。在使用该值之前,您可能需要确保该值有效。

const parsedIndex = parseInt(index);
if (isNaN(parsedIndex) || index < 0) {
  throw 'Invalid index';
}
someArray[parsedIndex].doSomething();
Run Code Online (Sandbox Code Playgroud)