Angular · Senior · Frage 21 von 75
Warum eine abstrakte Klasse als DI-Token verwenden?
export abstract class Storage { abstract get(key: string): string | null; }
providers: [{ provide: Storage, useClass: LocalStorageService }]- 1Abstrakte Klassen erzeugt der Injector schneller
- 2Interfaces funktionieren genauso, es ist nur eine Stilfrage
- 3Sie ist ein Vertrag, der zur Laufzeit existiert, und lässt sich tauschen
Antwort zeigen
Richtige Antwort: Sie ist ein Vertrag, der zur Laufzeit existiert, und lässt sich tauschen
Erklärung
Interfaces werden beim Kompilieren entfernt und können keine Tokens sein. Eine abstrakte Klasse liefert Typ und Laufzeit-Token zugleich, so hängt man in Angular von Abstraktionen ab.