const total = Object.values(res).reduce((acc, cur) => acc + cur, 0)中的acc+cur 报运算符“+”不能应用于类型“unknown”和“unknown
时间: 2024-03-12 08:48:20 浏览: 142
这个错误是因为 TypeScript 不知道 `acc` 和 `cur` 的类型,它们被推断为 `unknown` 类型。在 TypeScript 中,`unknown` 类型的值不能与其他类型进行运算或操作,因为 TypeScript 不知道它们的确切类型,也就无法确定运算或操作的结果。
为了解决这个问题,你需要告诉 TypeScript `acc` 和 `cur` 的类型,或者使用类型保护来确定它们的类型。例如,如果 `res` 对象中的值都是数字类型,你可以使用类型断言来告诉 TypeScript `acc` 和 `cur` 的类型是 `number`,例如:
```typescript
const total = Object.values(res).reduce((acc: number, cur: number) => acc + cur, 0);
```
或者你可以使用类型保护来判断 `acc` 和 `cur` 的类型是否为 `number`,例如:
```typescript
const total = Object.values(res).reduce((acc, cur) => {
if (typeof acc === 'number' && typeof cur === 'number') {
return acc + cur;
} else {
return acc;
}
}, 0);
```
这样 TypeScript 就能够确定 `acc` 和 `cur` 的类型是 `number`,从而避免了运算符不能应用于类型未知的错误。
阅读全文
相关推荐



















