Skip to content

Commit 52fe4f5

Browse files
authored
feat(types): type hints for hmr events (#681) (#1030)
Co-authored-by: Rush Ali <[email protected]> closes #681 #1030
1 parent 3b7a520 commit 52fe4f5

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

docs/guide/api-hmr.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@ Die manuelle HMR API ist hauptsächlich für Framework- und Tool-Autoren gedacht
88

99
Vite stellt seine manuelle HMR API über das spezielle `import.meta.hot` Objekt zur Verfügung:
1010

11-
```ts
11+
```ts twoslash
12+
import type { ModuleNamespace } from 'vite/types/hot.d.ts'
13+
import type {
14+
CustomEventName,
15+
InferCustomEventPayload,
16+
} from 'vite/types/customEvent.d.ts'
17+
18+
// ---cut---
1219
interface ImportMeta {
1320
readonly hot?: ViteHotContext
1421
}
1522

16-
type ModuleNamespace = Record<string, any> & {
17-
[Symbol.toStringTag]: 'Module'
18-
}
19-
2023
interface ViteHotContext {
2124
readonly data: any
2225

@@ -25,23 +28,25 @@ interface ViteHotContext {
2528
accept(dep: string, cb: (mod: ModuleNamespace | undefined) => void): void
2629
accept(
2730
deps: readonly string[],
28-
cb: (mods: Array<ModuleNamespace | undefined>) => void
31+
cb: (mods: Array<ModuleNamespace | undefined>) => void,
2932
): void
3033

3134
dispose(cb: (data: any) => void): void
3235
prune(cb: (data: any) => void): void
3336
invalidate(message?: string): void
3437

35-
// `InferCustomEventPayload` bietet Typen für integrierte Vite-Ereignisse
36-
on<T extends string>(
38+
on<T extends CustomEventName>(
39+
event: T,
40+
cb: (payload: InferCustomEventPayload<T>) => void,
41+
): void
42+
off<T extends CustomEventName>(
3743
event: T,
38-
cb: (payload: InferCustomEventPayload<T>) => void
44+
cb: (payload: InferCustomEventPayload<T>) => void,
3945
): void
40-
off<T extends string>(
46+
send<T extends CustomEventName>(
4147
event: T,
42-
cb: (payload: InferCustomEventPayload<T>) => void
48+
data?: InferCustomEventPayload<T>,
4349
): void
44-
send<T extends string>(event: T, data?: InferCustomEventPayload<T>): void
4550
}
4651
```
4752

0 commit comments

Comments
 (0)