TSLint:forIn 循环必须被过滤

Posted

技术标签:

【中文标题】TSLint:forIn 循环必须被过滤【英文标题】:TSLint: forIn loop must be filtered 【发布时间】:2021-11-26 14:53:01 【问题描述】:

我的项目中的 TSLINT 出现错误,关于 forIn 循环。 错误是下一个:

for (... in ...) statements must be filtered with an if statement

我尝试了 Object.prototype.hasOwnProerty.call(object, key) 和 object.hasOwnproperty(key) 这两种解决方案,但我仍然有错误。

代码如下:

const data = result.data
for (const key in data) 
  // Must use a if statement
  if (data.hasOwnProperty(key)) 
    // code...
  

你知道我错过了什么吗?

谢谢大家

【问题讨论】:

【参考方案1】:

您可以通过在 lint 文件中添加配置来禁用此功能。

参考: https://palantir.github.io/tslint/rules/forin/

或 第二种选择: 试试这个:

const data = result.data;
let key;
for (key in data) 
  if (data.hasOwnProperty(key)) 
    // code...
  
```


【讨论】:

感谢第一个建议,但我不能因为项目规则,我不能这样做。【参考方案2】:

我的错,

其实if语句句柄外面有一行,就是用key...

我自己注意:确保检查语句范围。

【讨论】:

以上是关于TSLint:forIn 循环必须被过滤的主要内容,如果未能解决你的问题,请参考以下文章

ES6 常用的数组函数(附加for)

forin循环能修改集合值吗?

js for in 和 for of的区别

详解 for in 循环方法

for循环+forin循环生成内容模版

tslint: prefer-for-of 期望一个“for-of”循环而不是一个“for”循环