关于ts提示:‘可能迭代异常(自定义/继承)成员,可能缺少 hasOwnProperty 检查’解决方案
需求描述:
- 最近在vue3+ts开发的H5项目中使用了for循环,由于项目中使用了ts,因此多了一层审查机制,当使用for循环后,ts提示:
可能迭代异常(自定义/继承)成员,可能缺少 hasOwnProperty 检查
。- IDE提示:ts检查JavaScript代码若有未过滤的for循环的任何实例,使用此构造会导致处理继承或意外的属性。需要使用hasOwnProperty()方法过滤自己的属性,验证适用于JavaScript,html或jsp的文件。
解决方案:
-
javascript中的每个对象都有原型,它有自己的属性(本机/继承的方法/属性)和直接附加到对象本身的属性。迭代对象时,它将迭代对象本身的属性和对象原型的属性。因此,为了避免迭代原型,建议使用hasOwnProperty方法,该方法仅在对象具有直接提到的属性时才返回true。解决如下:
-
// 方式1:Object