
typescript
Angular EventEmitter 错误:预期有 0 个类型参数,但得到了 1 个
Angular 是一种流行的前端框架,被广泛用于构建单页应用程序。在 Angular 中,我们可以使用事件来实现组件之间的通信。Angular 提供了一个名为 EventEmitter 的类,它允许我们在组件之间发送自定义事件。然而,有时候在使用 EventEmitter 时,我们可能会遇到一个错误:预期有 0 个类型参数,但得到了 1 个。错误信息的含义在 Angular 中,EventEmitter 是一个泛型类,可以使用类型参数来指定事件传递的数据类型。例如,我们可以创建一个 EventEmittertypescriptimport { Component, EventEmitter, Output } from '@angular/core';@Component({ selector: 'app-example', template: <code> <button (click)="onClick()">Click me</button> </code>})export class ExampleComponent { @Output() myEvent: EventEmitter = new EventEmitter(); // 错误的用法 onClick() { this.myEvent.emit(); }}在上面的代码中,我们创建了一个名为 myEvent 的 EventEmitter 实例,但是没有指定类型参数。由于 EventEmitter 是一个泛型类,这样的用法是错误的,会导致预期有 0 个类型参数的错误。解决方法要解决这个错误,我们需要在创建 EventEmitter 实例时,指定正确的类型参数。根据实际需求,我们可以选择不同的数据类型来作为事件的传递类型。在上面的示例中,我们可以将 EventEmittertypescriptimport { Component, EventEmitter, Output } from '@angular/core';@Component({ selector: 'app-example', template: <code> <button (click)="onClick()">Click me</button> </code>})export class ExampleComponent { @Output() myEvent: EventEmitter<void> = new EventEmitter<void>(); // 修正后的用法 onClick() { this.myEvent.emit(); }}在上面的代码中,我们将 myEvent 的类型参数修改为 void,表示该事件不传递任何数据。修正后的代码不再报错,可以正常使用 EventEmitter 发送自定义事件。在使用 Angular EventEmitter 时,我们需要注意正确指定类型参数,以避免出现预期有 0 个类型参数,但得到了 1 个的错误。根据实际需求,我们可以选择不同的类型参数来作为事件的传递类型。通过修正错误示例中的代码,我们可以正确地使用 EventEmitter 来实现组件之间的通信。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号