115 votes

ERREUR "Le type 'EventEmitter' n'est pas générique" dans angular

Je suis actuellement un tutoriel et le tutoriel utilise EventEmitter . Le code est le suivant

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

Mais le code Visual Studio me donne ces erreurs :

  1. Le type 'EventEmitter' n'est pas générique.
  2. Je m'attendais à 0 argument de type, mais j'en ai eu 1.

Même dans le site web angulaire il semble que ce code soit correct.

J'utilise actuellement Angular CLI : 1.7.4 ; Node : 8.11.1 ; Typescript : 2.8.1

354voto

basarat Points 22425

Vous utilisez probablement le node EventEmitter natif de node/index.d.ts c'est-à-dire

import { EventEmitter } from 'events';

Fixer

Changez l'import pour celui d'angular :

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

29voto

Nips Points 772

Lorsque l'on utilise Visual Studio Code, l'IDE importe EventEmitter de Node.js .

import { EventEmitter } from "events";

Dans ce cas, vous devrez le changer manuellement en module angular core

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

8voto

Pour moi, VS code IDE V1.60.0 a ajouté automatiquement ce code :

import { EventEmitter } from 'stream';

Cependant, c'est une erreur et vous devriez le remplacer par ceci

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

2voto

Mumin Quadri Points 67

Je faisais le même tutoriel et j'ai rencontré le même problème.

C'est un problème d'importation. EventEmitter doit être importé de @angular/core

Utilisez :

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

Cela va le réparer.

0voto

trustidkid Points 83

Dans le code de Visual Studio, lorsque vous essayez d'écouter l'événement de clic de l'utilisateur à partir de votre fichier html du composant

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

il l'importe automatiquement dans le composant import { EventEmitter } from '@angular/event' au lieu de import { EventEmitter } from '@angular/core' .

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X