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