gpt4 book ai didi

node.js - 在扩展 EventEmitter 的 TypeScript 类中声明事件

转载 作者:IT老高 更新时间:2023-10-28 23:13:27 27 4
gpt4 key购买 nike

我有一个类扩展了 EventEmitter,它可以发出事件 hello。如何使用特定的事件名称和监听器签名声明 on 方法?

class MyClass extends events.EventEmitter {

emitHello(name: string): void {
this.emit('hello', name);
}

// compile error on below line
on(event: 'hello', listener: (name: string) => void): this;
}

最佳答案

最有用的方法是使用 declare:

declare interface MyClass {
on(event: 'hello', listener: (name: string) => void): this;
on(event: string, listener: Function): this;
}

class MyClass extends events.EventEmitter {
emitHello(name: string): void {
this.emit('hello', name);
}
}

请注意,如果您要导出您的类,接口(interface)和类都必须使用 export 关键字声明。

关于node.js - 在扩展 EventEmitter 的 TypeScript 类中声明事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39142858/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com