当前位置: 代码迷 >> 综合 >> angualr中使用for ... in 出现警告for (... in ...) statements must be filtered with an if statement (forin)
  详细解决方案

angualr中使用for ... in 出现警告for (... in ...) statements must be filtered with an if statement (forin)

热度:34   发布时间:2023-11-15 04:51:38.0

angualr中使用for … in 出现警告for (… in …) statements must be filtered with an if statement (forin)

原因:
使用 for…in会遍历对象上的所有的属性,包括原型链上的可枚举属性,该警告的目的是希望过滤出想遍历的属性,而不是所有属性。

解决办法:
1、使用ts中的 // tslint:disable-next-line:forin,意思是忽略下一行的校验。
2、使用Object.keys()对所有遍历的对象的key进行提取,并使用for…of遍历提取的keys数组。
例如:
checkFormInvaild(form) {
for (const i of Object.keys(form.controls)) {
form.controls[i].markAsDirty();
form.controls[i].updateValueAndValidity();
}
return form.invalid;
}

  相关解决方案