使用for in 循环时ESLint报错原因,以及解决方法
for…in 会遍历到原型链上的属性,如下
let obj = {}
obj.__proto__.name = 'IU'
for(let item in obj){
console.log(item)
}
//输出 name
因此,eslint会对此进行报错。
解决方法
- 判断属性是否对象自身属性(非继承)
let val = { shu: [1, 2, 3] };
for (let item in val) {
if (val.hasOwnProperty(item)) {
console.log(item);
}
}
- 使用Object.keys提取key,并用for…of循环
for (const attr of Object.keys(form)) {
this.$delete(form, attr);
}
- 使用ts中的 // tslint:disable-next-line:forin 忽略下一行校验