美好的一天!我目前正在学习教程,教程正在使用EventEmitter。代码就像这样
@Output() ratingClicked: EventEmitter<string> =
new EventEmitter<string>();
但是visual studio代码给了我这些错误 1.键入&#39; EventEmitter&#39;不是通用的。 2.期望的0类型参数,但得到1。
即使在有角度的网站中,看起来代码也是正确的。 https://angular.io/api/core/EventEmitter
我目前正在使用Angular CLI:1.7.4;节点:8.11.1; Typescritp:2.8.1
希望有人可以提供帮助。
答案 0 :(得分:111)
您可能正在使用node
中的node/index.d.ts
原生EventEmitter。
在您的文件中添加以下导入:
import { EventEmitter } from '@angular/core';
答案 1 :(得分:11)
使用Visual Studio代码时,IDE自动imports EventEmitter from Node.js。
import { EventEmitter } from "events";
在这种情况下,您必须手动将其更改为角铁芯模块
import { EventEmitter } from "@angular/core";
答案 2 :(得分:0)
我会从右侧分配中删除<string>
以避免此错误与文档一致。左侧的<string>
应该足以声明发射值的泛型类型。
@Output() ratingClicked: EventEmitter<string> = new EventEmitter();
希望这有帮助!
答案 3 :(得分:0)
在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
答案 4 :(得分:0)
我在做同样的教程,遇到同样的问题。
这是导入的问题。 EventEmitter
必须从@angular/core
导入
使用:
import { EventEmitter } from '@angular/core';
这将解决它。