Как реализовать Dependency Injection в TypeScript без фреймворка?
Senior
268 просмотров
AFK Offer AI
Простой DI контейнер: Map. register(token, factory). resolve(token): factory(this). inversify — популярная DI библиотека для TypeScript: @injectable(), @inject(TOKEN). tsyringe (от Microsoft) аналогично. Ручной DI без библиотек: constructor(private repo: UserRepo) + создать все зависимости в composition root (main.ts). Для тестирования мокаешь через constructor. Фреймворки (NestJS, tsyringe) делают это автоматически через Reflect Metadata.