@cimo/jsmvcfw
Version:
Javascript mvc framework. Light, fast and secure.
7 lines (6 loc) • 413 B
TypeScript
export default class Emitter<Events extends Record<string, unknown>> {
private listenerObject;
on<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void): void;
emit<K extends keyof Events>(event: K, ...[payload]: Events[K] extends undefined ? [] : [Events[K]]): void;
off<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void, isRemoveAll?: boolean): void;
}