Estou utilizando a versão mais recente do TypeScript, vi que alguns alunos tiveram problema de tipagem do compilador ao usar versões mais recentes também. Consegui resolver realizando algumas alterações:
=> Promise<void | Negociacao[]>
=> negociacoes: Negociacao[]
... classe NegociacaoService
import { Negociacao, NegociacaoParcial } from "../models/index";
export class NegociacaoService {
obterNegociacoes(handler: Function): Promise<void | Negociacao[]> {
return fetch('http://localhost:8080/dados')
.then(response => handler(response))
.then(response => response.json())
.then((dados: NegociacaoParcial[]) => dados
.map(dado => new Negociacao(new Date(), dado.vezes, parseFloat((dado.montante / dado.vezes).toFixed(2))))
)
.catch(err => console.log(err.message));
}
}
... classe NegociacaoController
@throttle()
importa() {
function isOK(response: Response) {
if (!response.ok)
throw new Error(response.statusText);
return response;
}
this._service.obterNegociacoes(isOK)
.then((negociacoes: Negociacao[]) => {
negociacoes.forEach(negociacao => this._negociacoes.adiciona(negociacao));
this._negociacoesView.update(this._negociacoes);
});
}