UNPKG

@novely/solid-renderer

Version:
13 lines (12 loc) 633 B
type EventMap = Record<string, unknown>; type EventKey<T extends EventMap> = string & keyof T; type EventReceiver<T> = (params: T) => void; interface Emitter<T extends EventMap> { on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; once<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; emit<K extends EventKey<T>>(eventName: K, params: T[K]): void; } declare const createEmitter: <T extends EventMap>() => Emitter<T>; export { createEmitter }; export type { Emitter, EventKey, EventReceiver, EventMap };