1
resposta

Array sendo gerado como "undefined"

Mesmo seguindo a aula devo ter cometido algum erro que não notei e o TS não aponta, pois o array é gerado sempre como undefinedprint do console log

Talvez tenha algo relacionado a este ponto do código em controllers:

    adiciona(): void{
       const negociacao:any = this.criaNegociacao();
       this.negociacoes.adiciona(negociacao);
       console.log(this.negociacoes.lista());
      this.limparFormulario();
    }

a terceira linha em "adiciona(negociacao)" o TS aponta erro se eu omito o ":any" da segunda linha afirmando que "Argument of type 'void' is not assignable to parameter of type 'Negociacao'

a solução que encontrei foi aceitar qualquer parametro nessa constante específica.

a parte de negociações está assim:

import { Negociacao } from "./negociacao.js";

export class Negociacoes {
    private negociacoes: Array<Negociacao> = [];

    adiciona(negociacao: Negociacao){
        this.negociacoes.push(negociacao);
    }
    lista(): Array<Negociacao> {
        return this.negociacoes;
    }
}

e a manipulação do DOM:

    constructor(){
        this.inputData = document.querySelector("#data");
        this.inputQuantidade = document.querySelector("#quantidade");
        this.inputValor = document.querySelector("#valor");

Alguém consegue observar em qual ponto estou errando?

1 resposta

Yuri, o método criaNegociação() deve retornar uma Negociação, talvez o erro esteja na parte do código em que você declarou essa função.

criaNegociacao(): Negociacao {
        const data = new Date(this.inputData.value.replace(/-/g,','));
        const quantidade = parseInt(this.inputQuantidade.value);
        const valor = parseFloat(this.inputValor.value);

        return new Negociacao(data,quantidade, valor); 
    }