UNPKG

@scena/event-emitter

Version:

Implement EventEmitter on object or component

18 lines (17 loc) 677 B
export declare type TargetParam<Param> = Pick<Param, Exclude<keyof Param, keyof EmitterParam>> & Partial<EmitterParam>; export interface EmitterParam<Target = any> { type: string; currentTarget: Target; stop(): void; } export declare type OnEvent<Param, Target = any> = EmitterParam<Target> & Param; export declare type EventHash<Events, Target> = Partial<{ [Key in keyof Events]: EventListener<Events[Key], Target>; }>; export declare type EventListener<Param, Target> = (e: OnEvent<Param, Target>) => any; export interface EventOptions { once: boolean; } export interface EventInfo extends Partial<EventOptions> { listener: EventListener<any, any>; }