web-ui-pack
Version:
Web package with UI elements
12 lines (11 loc) • 940 B
TypeScript
/** Apply el.addEventListener and return el.removeEventListener function; use passive:true by default;
* @tutorial Troubleshooting
* * don't change argument `options` after the function call otherwise removineListener can be skipped */
export default function onEvent<T extends keyof E, K extends HTMLElement | Document, E extends (HTMLElementEventMap & Record<keyof E, Event>) | Record<string, Event> = HTMLElementEventMap>(element: K, type: T, listener: (this: K, e: E[T] & {
target: EventTarget;
currentTarget: EventTarget;
}) => any, options?: boolean | AddEventListenerOptions): () => void;
export type onEventType<T extends keyof E, K extends HTMLElement | Document, E extends HTMLElementEventMap & Record<keyof E, Event> = HTMLElementEventMap> = (el: K, type: T, listener: (this: K, e: E[T] & {
target: EventTarget;
currentTarget: EventTarget;
}) => any, options?: boolean | AddEventListenerOptions) => () => void;