Da erro de compilação quando o método esta assim: obterNegociacoes(handler: Function): Promise<Negociacao[]>
erro: Type 'Promise<void | Negociacao[]>' is not assignable to type 'Promise<Negociacao[]>'.\n Type 'void | Negociacao[]' is not assignable to type 'Negociacao[]'.\n Type 'void' is not assignable to type 'Negociacao[]'.", "source": "ts", "startLineNumber": 7, "startColumn": 9, "endLineNumber": 14, "endColumn": 45 }
ou quando passo ele para obterNegociacoes(handler: Function): Promise<void | Negociacao[]>
o erro no terminal é esse e a class NegociacaoController da esse erro: app/ts/controllers/NegociacaoController.ts(79,29): error TS2339: Property 'forEach' does not exist on type 'void | Negociacao[]'. [0] Property 'forEach' does not exist on type 'void'. [0] app/ts/controllers/NegociacaoController.ts(79,37): error TS7006: Parameter 'negociacao' implicitly has an 'any' type. [0] 16:25:39 - Compilation complete. Watching for file changes.
código completo negociacaoService:
import { NegociacaoParcial, Negociacao } from './../models/index';
export class NegociacaoService {
obterNegociacoes(handler: Function): Promise<void | 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));
}
}
código com do método da class NegociacaoController:
importaDados() {
function isOk(res: Response){
if(res.ok) {
return res;
} else {
throw new Error(res.statusText);
}
}
this._service
.obterNegociacoes(isOk)
.then(negociacoes => {
negociacoes.forEach(negociacao =>
this._negociacoes.adiciona(negociacao));
this._negociacoesView.update(this._negociacoes);
});
}