You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript接口/泛型实例化疑问:为何EventEmitter可被实例化?

关于Angular中EventEmitter实例化的疑问解答

你提到的误解核心在于:Angular的EventEmitter不是接口,而是一个可实例化的类。

从@angular/core导入的EventEmitter本质上是继承自RxJS Observable的类,专门设计用于Angular组件间通过@Output装饰器传递自定义事件,完全符合类的实例化规则,所以可以用new EventEmitter<string>()创建实例。

另外注意你提供的完整代码里有一处语法错误:

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

这里末尾缺少了括号,正确写法应该是:

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

如果不加括号,你实际上是把EventEmitter类本身赋值给了sharedData变量,而不是创建它的实例,后续调用emit方法时会抛出错误。

补充说明:<string>是泛型参数,用来约束这个EventEmitter可以传递的数据类型,确保类型安全,避免传递不符合预期的数据。

内容的提问来源于stack exchange,提问作者Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:35:34