"El tipo 'EventEmitter' no es genérico" ERROR en angular

80

Actualmente estoy siguiendo un tutorial y el tutorial está utilizando EventEmitter. El código es así

@Output() ratingClicked: EventEmitter<string> =
        new EventEmitter<string>();

Pero el código de Visual Studio me da estos errores:

  1. El tipo 'EventEmitter' no es genérico.
  2. Se esperaba 0 argumentos de tipo, pero obtuve 1.

Incluso en el sitio web angular parece que el código es correcto.

Actualmente estoy usando Angular CLI: 1.7.4; Nodo: 8.11.1; Texto mecanografiado: 2.8.1

el gran hipocrita
fuente

Respuestas:

264

Probablemente esté utilizando el nodeEventEmitter nativo de node/index.d.tsie

import { EventEmitter } from 'events';

Reparar

Cambie la importación a la de angular:

import { EventEmitter } from '@angular/core';
basarat
fuente
27

Cuando se utiliza código de Visual Studio, el IDE automáticamente importa EventEmitter de Node.js .

import { EventEmitter } from "events";

En este caso, tendrá que cambiarlo manualmente al módulo de núcleo angular

import { EventEmitter } from "@angular/core";
Nipuna
fuente
0

En el código de Visual Studio cuando intentas escuchar el evento de clic del usuario desde tu archivo html del componente

@Output() event: EventEmitter<string> = new EventEmitter<string>();

lo importa automáticamente al componente en import { EventEmitter } from '@angular/event'lugar de import { EventEmitter } from '@angular/core'.

Recurso: https://ultimatecourses.com/blog/component-events-event-emitter-output-angular-2

trustidkid
fuente
0

Estaba haciendo el mismo tutorial y enfrenté el mismo problema.

Es un problema con una importación. EventEmitterdebe ser importado de@angular/core

Utilizar:

import { EventEmitter } from '@angular/core';

Esto lo arreglará.

Mumin Quadri
fuente