报错内容如下:
参数“habit”隐式具有“any”类型。
解决思路:
在 TypeScript 中,当没有为 habits 数组和其中的元素指定类型时,TypeScript 会默认将其推断为 any 类型,这意味着 TypeScript 不知道 habit 对象的结构,从而无法确定 habit.completed 是否是一个有效的操作。
解决方案:
通过给 habits 数组和 habit 对象指定类型,可以解决这个问题。为 forEach 方法传递一个函数参数,显式地指定 habit 参数的类型为包含 completed 属性的对象类型。
下面是修改后的代码示例:
告诉 TypeScript habit 对象应该具有一个 completed 属性,并且这个属性是布尔类型。这样 TypeScript 就能正确推断和验证代码,避免报错。