我使用的是TypeScript 2.x和lodash。
当我使用
时console.log(_.reduce([1, 2], (result, n) => result + n)); // 3
它给了我错误:
错误TS2365:运营商' +'不能应用于类型' {}'和 '数'
答案 0 :(得分:5)
更改为result: number
将解决问题。
console.log(_.reduce([1, 2], (result: number, n) => result + n)); // 3
TypeScript只能知道n
是基于[1, 2]
的数字。但它在返回之前不知道result
的类型。所以你需要明确告诉它。
例如,
console.log(_.reduce([1, 2], (result, n) => 'hi')); // 'hi'
result
的类型是字符串而不是数字。