web-dev-qa-db-fra.com

"Le type 'EventEmitter' n'est pas générique" ERROR in angular

Bonne journée! Je suis actuellement un tutoriel et le tutoriel utilise EventEmitter. Le code va comme ça

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

mais ce code visuel de studio me donne ces erreurs 1. Le type 'EventEmitter' n'est pas générique . 2. On attend 0 argument de type, mais on en a 1.

Même sur le site angulaire, il semble que ce code soit correct. https://angular.io/api/core/EventEmitter

J'utilise actuellement CLI angulaire: 1.7.4; Nœud: 8.11.1; Typescritp: 2.8.1

J'espère que quelqu'un pourra vous aider.

19
thegreathypocrite

Vous utilisez probablement le node native EventEmitter de node/index.d.ts

Réparer

Ajoutez l'importation suivante dans votre fichier: 

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

Lors de l'utilisation de Visual Studio Code, IDE automatiquement importe EventEmitter de Node.js

import { EventEmitter } from "events";

Dans ce cas, vous devrez le modifier manuellement en module de base angulaire.

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

Je supprimerais le <string> de l'assignation de droite pour éviter cette erreur conformément à la documentation. Le <string> à gauche devrait suffire à déclarer ce type générique pour la valeur émise.

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

Espérons que cela aide!

0