Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no console: Cannot read property 'value' of undefined

Boa tarde. Está apresentando esta tela de erro mesmo configurando os arquivos como no vídeo. O que pode ser? Já tentei várias coisas aqui e nada..

Console:

Uncaught TypeError: Cannot read property 'value' of undefined
    at HTMLFormElement.adiciona (NegociacaoController.js:9)

NegociacaoController.ts :

class NegociacaoController {
    private _inputData;
    private _inputQuantidade;
    private _inputValor;

    constructor() {
        this._inputData = document.querySelector('#data');
        this._inputQuantidade = document.querySelector('#quantidade');
        this._inputValor = document.querySelector('#valor');
    }

    adiciona(event) {

        event.preventDefault();

        const negociacao = new Negociacao(
            this._inputData.value,
            this._inputQuantidade.value,
            this._inputValor.value
        );
        console.log(negociacao);
    }
}

app.ts

const controller = new NegociacaoController();

document
    .querySelector('.form')
    .addEventListener('submit', controller.adiciona);

Negociacao.ts:

class Negociacao {
    private _data;
    private _quantidade;
    private _valor;

    constructor(data, quantidade, valor) {
        this._data = data;
        this._quantidade = quantidade;
        this._valor = valor;
    }

    get data() {
        return this._data;
    }

    get quantidade() {
        return this._quantidade;
    }

    get valor() {
        return this._valor;
    }

    get volume() {
        return this._quantidade * this._valor;
    }
}
1 resposta
solução!

Resolvido!!

No app.ts faltou adicionar o bind do controller.

document
    .querySelector('.form')
    .addEventListener('submit', controller.adiciona.bind(controller));

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