Não sei o que ocorreu mas os códigos que eu peguei durante as aulas está dando erro no trecho abaixo, especialmente no negociacao:
negociacoesParaImportar
.filter(negociacao =>
!negociacoesJaImportadas.some(jaImportada =>
negociacao.ehIgual(jaImportada)))
.forEach(negociacao =>
this._negociacoes.adiciona(negociacao));
Ao passar o mouse por cima do negociacao o Visual Studio Code me apresenta a seguinte mensagem:
(parameter) negociacao: any
parameter 'negociacao' implicitly has an 'any' type. ts(7006)
Eu prestei bastante a atenção no código apresentado no curso, pausando o vídeo e não notei nada de errado.
Abaixo está o código completo do arquivo do projeto NegociacaoController.ts, para verificação:
import { NegociacoesView, MensagemView } from '../views/index';
import { Negociacao, Negociacoes } from '../models/index';
import { domInject, throttle } from '../helpers/decorators/index';
import { NegociacaoParcial } from '../models/index';
import { NegociacaoService } from '../services/index';
import { imprime } from '../helpers/index';
export class NegociacaoController {
@domInject('#data')
private _inputData: JQuery;
@domInject('#quantidade')
private _inputQuantidade: JQuery;
@domInject('#valor')
private _inputValor: JQuery;
private _negociacoes = new Negociacoes();
private _negociacoesView = new NegociacoesView('#negociacoesView');
private _mensagemView = new MensagemView('#mensagemView');
private _service = new NegociacaoService();
constructor() {
this._negociacoesView.update(this._negociacoes);
}
adiciona(event: Event) {
event.preventDefault();
let data = new Date(this._inputData.val().replace(/-/g, ','));
if(!this._ehDiaUtil(data)) {
this._mensagemView.update('Somente negociações em dias úteis, por favor!');
return
}
const negociacao = new Negociacao(
data,
parseInt(this._inputQuantidade.val()),
parseFloat(this._inputValor.val())
);
negociacao.paraTexto();
this._negociacoes.adiciona(negociacao);
this._negociacoesView.update(this._negociacoes);
this._mensagemView.update('Negociação adicionada com sucesso!');
// imprime no console a negociacao
//imprime(negociacao, this._negociacoes);
imprime(negociacao, this._negociacoes, { paraTexto: () => console.log('oi')});
}
private _ehDiaUtil(data: Date) {
return data.getDay() != DiaDaSemana.Sabado && data.getDay() != DiaDaSemana.Domingo;
}
@throttle()
async importaDados() {
try {
// usou await antes da chamada de this.service.obterNegociacoes()
const negociacoesParaImportar = await this._service
.obterNegociacoes(res => {
if(res.ok) {
return res;
} else {
throw new Error(res.statusText);
}
});
const negociacoesJaImportadas = this._negociacoes.paraArray();
negociacoesParaImportar
.filter(negociacao =>
!negociacoesJaImportadas.some(jaImportada =>
negociacao.ehIgual(jaImportada)))
.forEach(negociacao =>
this._negociacoes.adiciona(negociacao));
this._negociacoesView.update(this._negociacoes);
} catch(err) {
this._mensagemView.update(err.message);
}
}
}
enum DiaDaSemana {
Domingo,
Segunda,
Terca,
Quarta,
Quinta,
Sexta,
Sabado
}
Agradeço se puderem me ajudar a descobrir o que houve de errado e não está deixando compilar o código do projeto.