"Тип" EventEmitter "не является общим" ОШИБКА в угловых

Добрый день! В настоящее время я следую учебнику, и в учебнике используется EventEmitter. Код выглядит следующим образом:

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

но это визуальный код студии дает мне эти ошибки. 1. Тип "EventEmitter" не является общим. 2. Ожидаемые аргументы типа 0, но получили 1.

Даже на угловом веб-сайте, похоже, этот код правильный. https://angular.io/api/core/EventEmitter

Я использую Angular CLI: 1.7.4; Узел: 8.11.1; Typecritp: 2.8.1

Надеюсь, кто-то может помочь.

Ответы

Ответ 1

Вы, вероятно, с помощью node родной EventEmitter от node/index.d.ts.

исправлять

Добавьте в свой файл следующий импорт:

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

Ответ 2

При использовании кода Visual Studio IDE автоматически импортирует EventEmitter из Node.js.

import { EventEmitter } from "events";

В этом случае вам придется вручную заменить его на angular модуль

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

Ответ 3

Я бы удалил <string> из назначения правой руки, чтобы избежать этой ошибки в соответствии с документацией. <string> с левой стороны должно быть достаточно, чтобы объявить этот общий тип для испускаемого значения.

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

Надеюсь, это поможет!

Ответ 4

В Visual Studio код, когда вы пытаетесь прослушать событие пользовательского нажатия из html файла компонента @Output() event: EventEmitter<string> = new EventEmitter<string>(); он автоматически импортирует это в компонент import { EventEmitter } from '@angular/event' вместо import { EventEmitter } from '@angular/core'.

Ресурс: https://ultimatecourses.com/blog/component-events-event-emitter-output-angular-2