Bom dia, estava seguindo o vídeo quando me deparei com as mensagens abaixo.
[0] app/controllers/negociacao-controller.ts(14,9): error TS2322: Type 'Element' is not assignable to type 'HTMLInputElement'. [0] Property 'accept' is missing in type 'Element'. [0] app/controllers/negociacao-controller.ts(15,9): error TS2322: Type 'Element' is not assignable to type 'HTMLInputElement'. [0] app/controllers/negociacao-controller.ts(16,9): error TS2322: Type 'Element' is not assignable to type 'HTMLInputElement'. [0] app/views/negociacoes-view.ts(6,9): error TS2322: Type 'Element' is not assignable to type 'HTMLElement'. [0] Property 'accessKey' is missing in type 'Element'.
Minha tabela também não foi exibida ao final do vídeo. Segue abaixo meu codigo do negociacao-controller e negociacoes-view
export class NegociacoesView {
private elemento: HTMLElement;
constructor(seletor: string) {
this.elemento = document.querySelector(seletor);
}
template(): string {
return `
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>DATA</th>
<th>QUANTIDADE</th>
<th>VALOR</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
`;
}
update(): void {
this.elemento.innerHTML = this.template();
}
}
import { Negociacoes } from '../models/Negociacoes.js';
import { Negociacao } from './../models/Negociacao.js';
import { NegociacoesView } from '../views/negociacoes-view.js';
export class NegociacaoController {
private inputData: HTMLInputElement;
private inputQuantidade: HTMLInputElement;
private inputValor: HTMLInputElement;
private negociacoes = new Negociacoes();
private negociacoesView = new NegociacoesView('#negociacoesView');
constructor() {
this.inputData = document.querySelector("#data");
this.inputQuantidade = document.querySelector("#quantidade");
this.inputValor = document.querySelector("#valor");
this.negociacoesView.update();
}
adiciona(): void {
const negociacao = this.criaNegociacao();
this.negociacoes.adiciona(negociacao);
console.log(this.negociacoes.lista());
this.limparFormulario();
}
criaNegociacao(): Negociacao {
const exp = /-/g;
const data = new Date(this.inputData.value.replace(exp, ','));
const quantidade = parseInt(this.inputQuantidade.value);
const valor = parseFloat(this.inputValor.value);
return new Negociacao(data, quantidade, valor);
}
limparFormulario(): void {
this.inputData.value = '';
this.inputValor.value = '';
this.inputQuantidade.value = '';
this.inputData.focus();
}
}