11. TypeScript: Kontener DI (Generics)
TypeScriptRęczna implementacja wzorca odwrócenia kontroli z użyciem generyków.
class Container {
private services = new Map();
register(name: string, instance: T): void {
this.services.set(name, instance);
}
resolve(name: string): T {
const service = this.services.get(name);
if (!service) throw new Error(`Service not found: ${name}`);
return service as T;
}
}
Kiedy używać
Stosowane w większych aplikacjach, gdzie trzeba zarządzać zależnościami między wieloma serwisami bez ręcznego przekazywania ich wszędzie.
Typowe pułapki
Rejestrowanie serwisu pod złą nazwą (literówka w stringu) da błąd dopiero w runtime — rozważ typowane klucze zamiast zwykłych stringów.