0 Tage Serie
javascript / expert
Snippet

Fortgeschrittene Dependency Injection mit InjectionToken-Factories

InjectionToken-Factories ermöglichen eine dynamische, umgebungsabhängige Auflösung von Abhängigkeiten auf Konfigurationsebene. Dies kapselt komplexe Instanziierungslogik direkt im Token und hält Komponenten sauber und testbar.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
export interface StorageStrategy {
save(key: string, value: any): void;
}
export const STORAGE_STRATEGY = new InjectionToken<StorageStrategy>('StorageStrategy', {
providedIn: 'root',
factory: () => {
const isSupported = typeof window !== 'undefined' && !!window.localStorage;
return isSupported ? inject(LocalStorageStrategy) : inject(MemoryStorageStrategy);
}
});
angular
Erklärung
1
new InjectionToken<StorageStrategy>(...)
Erstellt einen eindeutigen Suchschlüssel für das Dependency-Injection-System.
2
factory: () => { ... }
Definiert die Logik zur Auflösung der Implementierung zur Laufzeit.
3
inject(LocalStorageStrategy)
Nutzt die funktionale inject()-Methode, um andere Abhängigkeiten innerhalb der Factory abzurufen.