UNPKG

typed-event-target

Version:

EventTarget in the browser but with strong event typing.

23 lines (22 loc) 713 B
import { type Overwrite } from '@augment-vir/common'; /** * Sub-class of `Event` with the type string part of the type signature. * * @category Internal */ export interface TypedEvent<EventType extends string> extends Event { readonly type: EventType; } /** * Define an `Event` sub-class with a type tied to its event type string. * * @category Events * @example * * ```ts * import {defineTypedEvent} from 'typed-event-target'; * * defineTypedEvent('event-type-string'); * ``` */ export declare function defineTypedEvent<const EventType extends string>(type: EventType): (new (eventInitDict?: EventInit) => TypedEvent<EventType>) & Overwrite<typeof Event, Pick<TypedEvent<EventType>, "type">>;