@@ -8,15 +8,18 @@ Die manuelle HMR API ist hauptsächlich für Framework- und Tool-Autoren gedacht
88
99Vite 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---
1219interface ImportMeta {
1320 readonly hot? : ViteHotContext
1421}
1522
16- type ModuleNamespace = Record <string , any > & {
17- [Symbol .toStringTag ]: ' Module'
18- }
19-
2023interface 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