Vi que a solução é tratar o erro no catch lançando um novo erro:
.catch(err => {throw new Error(err)});
Mas não entendo por que isso resolveu o problema... Outra solução seria mudar o tipo de retorno do método obterNegociações(..) para Promise<void | Negociacao[]> Gostaria que explicassem o motivo de erro (que não ocorreu com o instrutor).
(Typescript 2 - Parte 4, aula 7)
export class NegociacaoService {
obterNegociacoes(handler: Function): Promise<Negociacao[]> {
return fetch('http://localhost:8080/dados')
.then(res => handler(res))
.then(res => res.json())
.then((dados: NegociacaoParcial[]) =>
dados.map(dado => new Negociacao(new Date(), dado.vezes, dado.montante))
)
.catch(err => console.log(err));
}
}