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

Type HTMLInputElement | null is not assignable to type 'HTMLInputElement'

Está dando esse erro na parte de declaração dessas variáveis e dos seus tipos.

"Type HTMLInputElement | null is not assignable to type 'HTMLInputElement'"

Pra facilitar, deixei meu código em um repositório do github até essa parte do erro:

https://github.com/albuquerque-lucas/typescript-1

Mas de qualquer forma, aqui está o código da página:

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

export class NegociacaoController {

    private inputData: HTMLInputElement;
    private inputQuantidade: HTMLInputElement;
    private inputValor: HTMLInputElement;


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

    adiciona(): void
    {

        const negociacao = this.criaNegociacao();

        console.log(negociacao);

    }

    criaNegociacao(): Negociacao
    {

        const exp = /-/g;
        const date = new Date(this.inputData.value.replace(exp, ','));
        const quantidade = parseInt(this.inputQuantidade.value);
        const valor = parseFloat(this.inputValor.value);

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


}
2 respostas
solução!

Oi Lucas!

Sou estudante também e consegui achar uma solução porque o meu deu o mesmo erro. Coloca ! depois de cada linha do constructor, assim voce vai afirmar pro seu código que aquele elemento não pode ser null.

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

Me diz se funcionou depois!

Oi Ana!

Muito obrigado mesmo! Eu cheguei a ver essa solução e pareceu resolver a princípio. Ia até postar aqui. Só que teve um problema no meu versionamento do git, acabei apagando e criando outro repositório a partir daquela aula,e aí funcionou mesmo sem os !. Não sei por que...

Mas de qualquer forma, os pontos de exclamação resolveram sim!

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