/** * EventEmitter */ export interface EventCallback { (...args: any[]): any; listen?: () => any; } export interface EventWrapper { [key: string]: (EventCallback)[]; } declare class EventEmitter { static defaultMaxListener: number; protected _maxListeners: number | undefined; private _events; constructor(); get events(): EventWrapper; get eventNames(): string[]; /** * 获取最大监听数 */ get maxListener(): number; /** * 设置最大监听数 * @param { number } num - 监听数 */ set maxListener(num: number); /** * 监听事件 * @param { string } type - 事件监听类型 * @param { EventCallback } cb - 回调函数 */ on(type: string, cb: EventCallback): void; /** * 只监听一次事件 * @param { string } type - 事件监听类型 * @param { EventCallback } cb - 回调函数 */ once(type: string, cb: (...args: any[]) => any): void; /** * 发布事件 * @param { string } type - 事件类型 * @param { any[] } args - 传递的参数集合 */ emit(type: string, ...args: any[]): void; /** * 移除事件监听 * @param { string } type - 事件监听类型 * @param { EventCallback } cb - 回调函数 */ off(type: string, cb: EventCallback): void; /** * 移除所有监听 */ clear(): void; } export default EventEmitter;