import EventEmitter from 'eventemitter3'; class EventBus { private ee: EventEmitter; constructor() { this.ee = new EventEmitter(); } /** * 监听 * @param eventName 事件名 * @param callBack 回调 */ on( eventName: K, callBack: (payload: T[K]) => void, ) { this.ee.on(eventName, callBack); } once( eventName: K, callBack: (payload: T[K]) => void, ) { this.ee.once(eventName, callBack); } emit( eventName: K, payload?: T[K], ) { this.ee.emit(eventName, payload); } off( eventName: K, callBack: (payload: T[K]) => void, ) { this.ee.off(eventName, callBack); } } export default EventBus;