Olá! Segui as orientações dada e o código apesenta o seguinte erro:
app/ts/views/NegociacoesView.ts(32,46): error TS2339: Property 'data' does not exist on type 'Negociacoes'.
app/ts/views/NegociacoesView.ts(32,75): error TS2339: Property 'data' does not exist on type 'Negociacoes'.
app/ts/views/NegociacoesView.ts(32,108): error TS2339: Property 'data' does not exist on type 'Negociacoes'.
app/ts/views/NegociacoesView.ts(33,46): error TS2339: Property 'quantidade' does not exist on type 'Negociacoes'.
app/ts/views/NegociacoesView.ts(34,46): error TS2339: Property 'valor' does not exist on type 'Negociacoes'.
app/ts/views/NegociacoesView.ts(35,46): error TS2339: Property 'volume' does not exist on type 'Negociacoes'.
Tentei comprar o código que escrevi com o fornecido e não consegui localizar o erro:
NegociacaoController.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(this._negociacoes);
}
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);
this._negociacoesView.update(this._negociacoes);
}
}
Negociacao.ts
class Negociacao {
constructor (private _data: Date, private _quantidade: number, private _valor: number) {}
get data () {
return this._data;
}
get quantidade () {
return this._quantidade;
}
get valor () {
return this._valor;
}
get volume () {
return this._quantidade * this._valor;
}
}
Negociacoes.ts
class Negociacoes {
private _negociacoes: Negociacao[] = [];
adiciona(negociacao: Negociacao): void {
this._negociacoes.push(negociacao);
}
paraArray(): Negociacoes[] {
return [].concat(this._negociacoes);
}
}
NegociacoesView.ts
class NegociacoesView {
private _elemento: Element;
constructor(seletor: string) {
this._elemento = document.querySelector(seletor);
}
update(model: Negociacoes): void {
this._elemento.innerHTML = this.template(model);
}
template(model: Negociacoes): 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>
${model.paraArray().map(negociacao =>
`
<tr>
<td>${negociacao.data.getDate()}/${negociacao.data.getMonth() +1}/${negociacao.data.getFullYear()}</td>
<td>${negociacao.quantidade}</td>
<td>${negociacao.valor}</td>
<td>${negociacao.volume}</td>
<tr>
`
).join('')}
</tbody>
<tfoot>
</tfoot>
</table>
`;
}
}
Fim do index.html
<script src="js/models/Negociacao.js"></script>
<script src="js/controllers/NegociacaoController.js"></script>
<script src="js/models/Negociacoes.js"></script>
<script src="js/views/NegociacoesView.js"></script>
<script src="js/app.js"></script>
</body>
</html>
Será que alguém consegue ver o erro? Por favor! Obrigado