Skip to content

Commit 2d925f8

Browse files
committed
docs: improve custom event typing
1 parent 07ec315 commit 2d925f8

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

docs/guide/api-plugin.md

+13-4
Original file line numberDiff line numberDiff line change
@@ -595,12 +595,21 @@ It is possible to type custom events by extending the `CustomEventMap` interface
595595

596596
```ts
597597
// events.d.ts
598+
import 'vite'
598599
import 'vite/client/types'
599600
601+
interface MyCustomEventMap {
602+
'custom:foo': { msg: string }
603+
// 'event-key': payload
604+
}
605+
606+
// extend interface for server-side
607+
declare module 'vite' {
608+
interface CustomEventMap extends MyCustomEventMap {}
609+
}
610+
611+
// extend interface for client-side
600612
declare module 'vite/client/types' {
601-
interface CustomEventMap {
602-
'custom:foo': { msg: string }
603-
// 'event-key': payload
604-
}
613+
interface CustomEventMap extends MyCustomEventMap {}
605614
}
606615
```

playground/hmr/event.d.ts

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1+
import 'vite'
12
import 'vite/client/types'
23

4+
interface MyCustomEventMap {
5+
'custom:foo': { msg: string }
6+
'custom:remote-add': { a: number; b: number }
7+
'custom:remote-add-result': { result: string }
8+
}
9+
10+
declare module 'vite' {
11+
interface CustomEventMap extends MyCustomEventMap {}
12+
}
13+
314
declare module 'vite/client/types' {
4-
interface CustomEventMap {
5-
'custom:foo': { msg: string }
6-
'custom:remote-add': { a: number; b: number }
7-
'custom:remote-add-result': { result: string }
8-
}
15+
interface CustomEventMap extends MyCustomEventMap {}
916
}

0 commit comments

Comments
 (0)