javascript / expert
Snippet
Typsichere Dependency Injection via Context-Symbole
Die Verwendung eindeutiger Symbole für Context-Keys vermeidet Namenskollisionen in großen Projekten. Durch das Kapseln von getContext und setContext in typisierten Funktionen erstellen Sie ein robustes Dependency-Injection-Muster, das Typsicherheit garantiert.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
const SERVICE_KEY = Symbol('auth-service');export function provideAuth(service: AuthService) {setContext(SERVICE_KEY, service);}export function useAuth() {const context = getContext<AuthService>(SERVICE_KEY);if (!context) throw new Error('AuthService not provided');return context;}
svelte
Erklärung
1
const SERVICE_KEY = Symbol(...);
Garantiert einen eindeutigen Schlüssel, der nicht versehentlich überschrieben werden kann.
2
setContext(SERVICE_KEY, service);
Stellt die Abhängigkeit für den Komponenten-Subbaum bereit.
3
if (!context) throw new Error(...);
Defensive Programmierung, um fehlende Provider frühzeitig zu erkennen.