toolset.io
Version:
44 lines (43 loc) • 1.25 kB
TypeScript
export type EventType = number | string | symbol;
export type EventHandler = (...payload: any[]) => void;
export type EventHandlerSet = Set<EventHandler>;
export type EventHandlerMap = Map<EventType, EventHandlerSet>;
export interface EventEmitter {
/**
* 为指定的事件添加回调方法
*
* @param type 事件类型
* @param handler 回调方法
*/
on: (type: EventType, handler: EventHandler) => void;
/**
* 为指定的事件移除回调方法
*
* @param type 事件类型
* @param handler 回调方法
*/
off: (type: EventType, handler: EventHandler) => void;
/**
* 为指定的事件清除所有回调方法
*
* @param type 事件类型
*/
clear: (type: EventType) => void;
/**
* 清除所有事件的所有回调方法
*/
clearAll: () => void;
/**
* 派发特定的事件
*
* @param type 事件类型
* @param payload 传入事件回调方法的参数
*/
emit: (type: EventType, ...payload: any[]) => void;
}
/**
* 创建一个自定义的事件发射器
*
* @returns 事件发射器
*/
export declare function createEventEmitter(): EventEmitter;