UNPKG

hightable

Version:

A dynamic windowed scrolling table component for react

27 lines (26 loc) 1.22 kB
/** * Type-safe event listener and dispatch signatures for the custom events * defined in `TDetails`. */ export interface CustomEventTarget<TDetails> { addEventListener<TType extends keyof TDetails>(type: TType, listener: (ev: CustomEvent<TDetails[TType]>) => any, options?: boolean | AddEventListenerOptions): void; removeEventListener<TType extends keyof TDetails>(type: TType, listener: (ev: CustomEvent<TDetails[TType]>) => any, options?: boolean | EventListenerOptions): void; dispatchEvent<TType extends keyof TDetails>(ev: _TypedCustomEvent<TDetails, TType>): void; } /** * Internal declaration for the `typeof` trick below. * Never actually implemented. */ declare class _TypedCustomEvent<TDetails, TType extends keyof TDetails> extends CustomEvent<TDetails[TType]> { constructor(type: TType, eventInitDict: { detail: TDetails[TType]; } & EventInit); } /** * Typed custom event (technically a typed alias of `CustomEvent`). * Use with `CustomEventTarget.dispatchEvent` to infer `detail` types * automatically. */ export declare const TypedCustomEvent: typeof _TypedCustomEvent; export declare function createEventTarget<TDetails>(): CustomEventTarget<TDetails>; export {};