mirror of https://github.com/sveltejs/svelte
fix: add document and window to svelte/events on types. (#13260)
fixes #13259 fixes #12665 put it into dts for now because of https://github.com/microsoft/TypeScript/issues/59980 --------- Co-authored-by: Simon Holthausen <simon.holthausen@vercel.com>pull/13261/head
parent
9204d699d5
commit
6ed45db20f
@ -0,0 +1,57 @@
|
|||||||
|
// Once https://github.com/microsoft/TypeScript/issues/59980 is fixed we can put these overloads into the JSDoc comments of the `on` function
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attaches an event handler to the window and returns a function that removes the handler. Using this
|
||||||
|
* rather than `addEventListener` will preserve the correct order relative to handlers added declaratively
|
||||||
|
* (with attributes like `onclick`), which use event delegation for performance reasons
|
||||||
|
*/
|
||||||
|
export function on<Type extends keyof WindowEventMap>(
|
||||||
|
window: Window,
|
||||||
|
type: Type,
|
||||||
|
handler: (this: Window, event: WindowEventMap[Type]) => any,
|
||||||
|
options?: AddEventListenerOptions | undefined
|
||||||
|
): () => void;
|
||||||
|
/**
|
||||||
|
* Attaches an event handler to the document and returns a function that removes the handler. Using this
|
||||||
|
* rather than `addEventListener` will preserve the correct order relative to handlers added declaratively
|
||||||
|
* (with attributes like `onclick`), which use event delegation for performance reasons
|
||||||
|
*/
|
||||||
|
export function on<Type extends keyof DocumentEventMap>(
|
||||||
|
document: Document,
|
||||||
|
type: Type,
|
||||||
|
handler: (this: Document, event: DocumentEventMap[Type]) => any,
|
||||||
|
options?: AddEventListenerOptions | undefined
|
||||||
|
): () => void;
|
||||||
|
/**
|
||||||
|
* Attaches an event handler to an element and returns a function that removes the handler. Using this
|
||||||
|
* rather than `addEventListener` will preserve the correct order relative to handlers added declaratively
|
||||||
|
* (with attributes like `onclick`), which use event delegation for performance reasons
|
||||||
|
*/
|
||||||
|
export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
|
||||||
|
element: Element,
|
||||||
|
type: Type,
|
||||||
|
handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
|
||||||
|
options?: AddEventListenerOptions | undefined
|
||||||
|
): () => void;
|
||||||
|
/**
|
||||||
|
* Attaches an event handler to an element and returns a function that removes the handler. Using this
|
||||||
|
* rather than `addEventListener` will preserve the correct order relative to handlers added declaratively
|
||||||
|
* (with attributes like `onclick`), which use event delegation for performance reasons
|
||||||
|
*/
|
||||||
|
export function on<Element extends MediaQueryList, Type extends keyof MediaQueryListEventMap>(
|
||||||
|
element: Element,
|
||||||
|
type: Type,
|
||||||
|
handler: (this: Element, event: MediaQueryListEventMap[Type]) => any,
|
||||||
|
options?: AddEventListenerOptions | undefined
|
||||||
|
): () => void;
|
||||||
|
/**
|
||||||
|
* Attaches an event handler to an element and returns a function that removes the handler. Using this
|
||||||
|
* rather than `addEventListener` will preserve the correct order relative to handlers added declaratively
|
||||||
|
* (with attributes like `onclick`), which use event delegation for performance reasons
|
||||||
|
*/
|
||||||
|
export function on(
|
||||||
|
element: EventTarget,
|
||||||
|
type: string,
|
||||||
|
handler: EventListener,
|
||||||
|
options?: AddEventListenerOptions | undefined
|
||||||
|
): () => void;
|
Loading…
Reference in new issue