sahara
Version:
An inversion-of-control container for managing dependencies. Supports constructor, property and method injection
14 lines (13 loc) • 503 B
TypeScript
type EventListener = (...args: any[]) => void;
type EventArgMap = {
[name: string]: any[];
};
export declare class EventEmitter<TMap extends EventArgMap> {
private readonly events;
constructor();
listeners(name: keyof TMap): EventListener[];
on<K extends keyof TMap>(name: K, listener: (...args: TMap[K]) => void): void;
off<K extends keyof TMap>(name: K, listener: (...args: TMap[K]) => void): void;
emit<K extends keyof TMap>(name: K, ...args: TMap[K]): void;
}
export {};