import { Ddan } from '../typings'; export interface IDEvent { name: string; listener: Ddan.Function | any; tag: string; } export default class DEvent implements Ddan.IEvent { __map: Map>; __tagList: IDEvent[]; __eventId: string; constructor(); clear(): this; /** * 监听 * @param name * @param listener * @returns */ on(name: string, listener: Ddan.Function, tag?: string): this; emit(name: string, ...args: any[]): this; /** * 取消监听 * @param name * @param listener * @returns */ off(name: string, listener?: Ddan.Function): this; /** * 移除 * @param name * @returns */ remove(name: string): this; removeByTag(tag: string): this; /** * 一次性监听 * @param name * @param listener * @returns */ once(name: string, listener: Ddan.Function): this; has(name: string): boolean; }