typescript - eroare TS2365: Operatorul '+' nu poate fi aplicat tipurilor '{}' și 'number'


Folosec TypeScript 2.x și lodash.

Când folosesc

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

Îmi dă eroare:

eroare TS2365: Operatorul '+’ nu poate fi aplicat tipurilor '{}' și 'number'.

Răspuns #1

Schimbarea în result: number va rezolva problema.

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

TypeScript poate ști că n este număr pe baza [1, 2]. Dar nu știe tipul lui result înainte să returneze. Așa că trebuie să-i spui explicit.

De exemplu,

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

tipul lui result este șir în loc de număr.