feat: type `currentTarget` in `on` function (#17370)

* feat: type `currentTarget` in `on` function

* `EventTarget &` is redundant, `Element` already extends `EventTarget`

* no need for optional chaining

* add currentTarget for other overloads

* update changeset

---------

Co-authored-by: Rich Harris <rich.harris@vercel.com>
pull/17388/head
That Richan 8 months ago committed by GitHub
parent 95a895a9d9
commit acd752524b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: type `currentTarget` in `on` function

@ -8,7 +8,7 @@
export function on<Type extends keyof WindowEventMap>(
window: Window,
type: Type,
handler: (this: Window, event: WindowEventMap[Type]) => any,
handler: (this: Window, event: WindowEventMap[Type] & { currentTarget: Window }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -19,7 +19,7 @@ export function on<Type extends keyof WindowEventMap>(
export function on<Type extends keyof DocumentEventMap>(
document: Document,
type: Type,
handler: (this: Document, event: DocumentEventMap[Type]) => any,
handler: (this: Document, event: DocumentEventMap[Type] & { currentTarget: Document }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -30,7 +30,7 @@ export function on<Type extends keyof DocumentEventMap>(
export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
element: Element,
type: Type,
handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
handler: (this: Element, event: HTMLElementEventMap[Type] & { currentTarget: Element }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -41,7 +41,7 @@ export function on<Element extends HTMLElement, Type extends keyof HTMLElementEv
export function on<Element extends MediaQueryList, Type extends keyof MediaQueryListEventMap>(
element: Element,
type: Type,
handler: (this: Element, event: MediaQueryListEventMap[Type]) => any,
handler: (this: Element, event: MediaQueryListEventMap[Type] & { currentTarget: Element }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**

@ -8,6 +8,8 @@ on(window, 'click', (e) => e.button);
on(document, 'click', (e) => e.button);
on(document.createElement('input'), 'input', (e) => e.currentTarget.value);
on(
document.body,
'clidck',

@ -2810,7 +2810,7 @@ declare module 'svelte/events' {
export function on<Type extends keyof WindowEventMap>(
window: Window,
type: Type,
handler: (this: Window, event: WindowEventMap[Type]) => any,
handler: (this: Window, event: WindowEventMap[Type] & { currentTarget: Window }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -2821,7 +2821,7 @@ declare module 'svelte/events' {
export function on<Type extends keyof DocumentEventMap>(
document: Document,
type: Type,
handler: (this: Document, event: DocumentEventMap[Type]) => any,
handler: (this: Document, event: DocumentEventMap[Type] & { currentTarget: Document }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -2832,7 +2832,7 @@ declare module 'svelte/events' {
export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
element: Element,
type: Type,
handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
handler: (this: Element, event: HTMLElementEventMap[Type] & { currentTarget: Element }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**
@ -2843,7 +2843,7 @@ declare module 'svelte/events' {
export function on<Element extends MediaQueryList, Type extends keyof MediaQueryListEventMap>(
element: Element,
type: Type,
handler: (this: Element, event: MediaQueryListEventMap[Type]) => any,
handler: (this: Element, event: MediaQueryListEventMap[Type] & { currentTarget: Element }) => any,
options?: AddEventListenerOptions | undefined
): () => void;
/**

Loading…
Cancel
Save