UNPKG

@whitesev/pops

Version:

弹窗库,包含了alert、confirm、prompt、drawer、folder、loading、iframe、panel、tooltip、searchSuggestion、rightClickMenu组件

40 lines (39 loc) 1.58 kB
import type { EventMap, CustomEventMap } from "../types/EventEmitter"; import type { PopsType } from "../types/main"; declare class EventEmiter<T extends CustomEventMap = CustomEventMap> { [Symbol.toStringTag]: string; type: PopsType; data: Map<string, { type: PopsType; time: number; callback: (...args: any[]) => IPromise<void>; }[]>; constructor(type: PopsType); on<P extends keyof EventMap>(eventName: P, callback: EventMap[P]): { off: () => IPromise<void>; emit: (...args: Parameters<T[P]>) => IPromise<void>; }; on<P extends keyof T>(eventName: P, callback: T[P]): { off: () => IPromise<void>; emit: (...args: Parameters<T[P]>) => IPromise<void>; }; off<P extends keyof EventMap>(eventName: P, callback: EventMap[P]): IPromise<void>; off<P extends keyof T>(eventName: P, callback: T[P]): IPromise<void>; emit<P extends keyof T>(eventName: P, ...args: Parameters<T[P]>): IPromise<void>; emit<P extends keyof EventMap>(eventName: P, ...args: Parameters<EventMap[P]>): IPromise<void>; offAll<P extends keyof EventMap>(eventName?: P): IPromise<void>; offAll<P extends keyof T>(eventName?: P): IPromise<void>; /** * 获取所有添加的事件 */ getAllEvents(eventName?: string): { type: PopsType; time: number; callback: (...args: any[]) => IPromise<void>; }[] | { type: PopsType; time: number; callback: (...args: any[]) => IPromise<void>; }[][] | undefined; } export { EventEmiter };