Encontrei mais um problema ao tentar chamar o método update() no console do navegador, conforme o final da aula "Apresentando Modelo para o usuário", aula 03 do Curso de TypeScript.
quando executo a chamada ao método recebo a seguinte mensagem: "VM446:1 Uncaught TypeError: view.update is not a function"
Classe NegociacoesView.ts
class NegociacoesView {
private _elemento: Element;
constructor(seletor: string) {
this._elemento = document.querySelector(seletor);
}
update(): void {
this._elemento.innerHTML = this.template();
}
template(): string {
return `
<table class="table table-hover table-bordered>
<thead>
<tr>
<th>DATA</th>
<th>QUANTIDADE</th>
<th>VALOR</th>
<th>VOLUME</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>
`;
}
}
classe: NegociacoesController.ts
class NegociacaoController {
private _inputData: HTMLInputElement;
private _inputQuantidade: HTMLInputElement;
private _inputValor: HTMLInputElement;
private _negociacoes = new Negociacoes();
private _negociacoesView = new NegociacoesView('#negociacoesView');
constructor() {
this._inputData = <HTMLInputElement>document.querySelector('#data');
this._inputQuantidade = <HTMLInputElement>document.querySelector('#quantidade');
this._inputValor = <HTMLInputElement>document.querySelector('#valor');
this._negociacoesView.update();
}
adiciona(event: Event) {
event.preventDefault();
const negociacao = new Negociacao(
new Date(this._inputData.value.replace(/-/g, ',')),
parseInt(this._inputQuantidade.value),
parseFloat(this._inputValor.value)
);
this._negociacoes.adiciona(negociacao);
}
}