给定一个Typescript接口和一个扩展Node.js EventEmitter 的类,是否可以定义自定义侦听器来对函数参数进行类型安全检查?
给出以下示例:
import { EventEmitter } from 'events';
interface Payload {
id: string;
weight: number;
}
class CustomEventEmitter extends EventEmitter {
constructor() {
super();
this.on('my_event', (data) => {
// I would like data to be implicitly inferred as Payload type
console.log(data.weight); // This should compile
console.log(data.something); // This should not compile
});
}
}
Run Code Online (Sandbox Code Playgroud)
节点 EventEmitter 侦听器定义为(...args: any[]) => void),我想重写该any[]类型并使用自定义定义的类型。是否可以?