Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[TypeScript] Erro de compilação, ao retornar método com Promise<Negociacao[]>

Olá Flávio, estou com um erro de compilação, no return do método 'obterNegociacoes':

import { NegociacaoParcial, Negociacao } from '../models/index';

export class NegociacaoService {

    obterNegociacoes(handler: ResponseHandler) : 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);
            );
    }
}

export interface ResponseHandler {
    (res: Response): Response;
}

O compiler do TypeScript apresenta o seguinte:

Type 'Promise<void | Negociacao[]>' is not assignable to type 'Promise<Negociacao[]>'. Type 'void | Negociacao[]' is not assignable to type 'Negociacao[]'. Type 'void' is not assignable to type 'Negociacao[]'.ts(2322)

É como se o then() do meu método pudesse retornar uma Promise do tipo 'void|Negociacao[]'. Muito estranho.

Tem ideia, do que pode ser ?

3 respostas
solução!

Boa tarde, Gustavo! Como vai?

Dá uma olhada nesse tópico! É provável que ele te ajude!

Qualquer coisa, se o problema continuar, é só falar!

Grande abraço e bons estudos, meu aluno!

Com certeza o tópico me ajudou, na verdade, eu pensei em algo nesse sentido, de retornar um [] vazio em caso de exceção. É que eu acompanhei na íntegra tudo o que o Flávio fez no treinamento, e no caso dele esse erro em tempo de compilação não ocorre, e a minha versão do TypeScript é a mesma que ele está está utilizando.

Boa, Gustavo! Que bom que resolveu o seu problema! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software