EventEmitter.emit() 不是函数

EventEmitter.emit() is not a function

我有一个子组件,每当用户更改选择时,我都会使用 primeng 插件的下拉菜单将其值发送给父组件。我使用 EventEmitter.emit() 函数发出 Solution 类型的值。 Solution 是我定义的接口。
这是我定义发射器的方式:

@Output('solutionChange') selectedSolution: EventEmitter<Solution> = new EventEmitter<Solution>();

这是我如何称呼发射器:
public onSolutionChange(args) {
    let solution: Solution = args.value as Solution;
    this.selectedSolution.emit(solution);
  }

问题 是当我调用 emit() 函数时出现错误 TypeError: emit is not函数.

我已经尝试将发射器的定义更改为 @Output('solutionChange') selectedSolution: EventEmitter<any> = new EventEmitter<any>(); 因为 args.value 是来自后端的任何类型,但仍然相同错误。我还尝试用 next() 函数替换 emit() 函数。

您可能导入了错误的 EventEmitter,这可能会在 IDE 中自动发生,例如 VS Code。它尝试像这样导入 Node.js events EventEmitter make sure you import from @angular/core EventEmitter

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

希望对您有所帮助!

我设法解决了。我试图解决它大约一个小时,当我认为我没有其他选择时,我决定寻求帮助。这是我的错误,因为我在 HTML 上的 NgModel 中给出的参数不小心,而且我还在从后端获取数据的服务中使用了错误的参数。在问问题之前,我也多次检查了类型。 我保留这个问题的原因是为了帮助其他可能像我一样犯同样错误的人。 感谢您的帮助!