错误TS2365:运营商' +'不能应用于类型' {}'和'数字'

时间:2016-09-06 07:32:16

标签: typescript lodash typescript2.0

我使用的是TypeScript 2.x和lodash。

当我使用

console.log(_.reduce([1, 2], (result, n) => result + n));    // 3

它给了我错误:

  

错误TS2365:运营商' +'不能应用于类型' {}'和   '数'

1 个答案:

答案 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的类型是字符串而不是数字。