3
respostas

Não consigo entender o que acontece!

Porque está dando esse erro? Desde que chegou nessa parte de Data biding começou a dar erro, a primeira resolvi com uma questão de syntax, agora essa não consigo entender o que há de errado.

Error: src/app/nova-transferencia/nova-transferencia.component.ts:2:31 - error TS7016: Could not find a declaration file for module 'events'. 'C:/angular/curso-alura/forma-angular/bytebank/node_modules/events/events.js' implicitly has an 'any' type. Try npm i --save-dev @types/events if it exists or add a new declaration (.d.ts) file containing declare module 'events';

2 import * as EventEmitter from 'events';

MEU CÓDIGO: @Output() aoTransferir = new EventEmitter();

valor!: number; destino!: number;

transferir(){ console.log('Solicitada nova transferência'); const valorEmitir = { valor: this.valor, destino: this.destino }; this.aoTransferir.emit(valorEmitir); }

3 respostas

Oi, Bruna!

Verifique a importação do EventEmitter, ele deve ser importado de @angular/core. Ficando:

import { Component, EventEmitter, Output } from "@angular/core";

Além disso, o EventEmitter recebe um tipo genérico, que no curso está sendo definido como any. Então, na declaração de aoTransferir:

@Output() aoTransferir = new EventEmitter<any>(); // perceba a inclusão do <any>

Qualquer coisa, estou à disposição!

Ajudou aqui, estava trazendo automaticamente de:

import * as EventEmitter from "events";

como saber quando esta vindo do lugar correto?

André, é muito questão de costume. No caso, o EventEmitter é um pacote do próprio Angular, então, se você já é familiarizado com a ferramenta, vai perceber que não está sendo importado do lugar correto.

Mas sempre que um erro relacionado a algo que você importou aparecer, é sempre bom conferir as importações e ver se está tudo certo.