“类型‘ EventEmitter’不是通用的”角度错误

我现在正在学习一个教程,这个教程使用的是 EventEmitter

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

但是它的视觉工作室代码给了我这些错误:

  1. 类型“ EventEmitter”不是泛型的。
  2. 预期类型参数为0,但得到1。

即使在 角度网站中,这个代码看起来也是正确的。

我目前使用的是 Angular CLI: 1.7.4; Node: 8.11.1; Typecript: 2.8.1

38914 次浏览

您可能正在使用来自 node/index.d.tsnode本机 EventEmitter,即。

import { EventEmitter } from 'events';

修好

将导入从角变为:

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

在可视化工作室代码中,当您尝试监听组件的 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

我在做同样的教程,面临同样的问题。

这是一个导入的问题。 EventEmitter必须从 @angular/core导入

用途:

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

这个能修好它。

对我来说,VS code IDE V1.60.0自动添加了以下代码:

import { EventEmitter } from 'stream';

However, it is wrong and you should replace it with this

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

This is the latest update for Angular 13

之所以会发生这种情况,是因为 EventEmitter可能是从 events模块导入的。

import * as EventEmitter from 'events';

Or

import { EventEmitter } from 'events';

要修复这个 ,请从 @angular/core导入 EventEmitter

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