Skip to content

Commit 24633ab

Browse files
committed
feat: type currentTarget in on function
1 parent 866ae6c commit 24633ab

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
lines changed

.changeset/bumpy-radios-live.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
type `currentTarget` in `on` function

packages/svelte/src/events/public.d.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ export function on<Type extends keyof DocumentEventMap>(
3030
export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
3131
element: Element,
3232
type: Type,
33-
handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
33+
handler: (
34+
this: Element,
35+
event: HTMLElementEventMap[Type] & { currentTarget: EventTarget & Element }
36+
) => any,
3437
options?: AddEventListenerOptions | undefined
3538
): () => void;
3639
/**

packages/svelte/tests/types/events.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on(window, 'click', (e) => e.button);
88

99
on(document, 'click', (e) => e.button);
1010

11+
const input = document.createElement('input');
12+
on(input, 'input', (e) => e.currentTarget?.value);
13+
1114
on(
1215
document.body,
1316
'clidck',

packages/svelte/types/index.d.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2823,7 +2823,10 @@ declare module 'svelte/events' {
28232823
export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
28242824
element: Element,
28252825
type: Type,
2826-
handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
2826+
handler: (
2827+
this: Element,
2828+
event: HTMLElementEventMap[Type] & { currentTarget: EventTarget & Element }
2829+
) => any,
28272830
options?: AddEventListenerOptions | undefined
28282831
): () => void;
28292832
/**

0 commit comments

Comments
 (0)