HoangNguyen0403

Dependency Injection

Best practices for DI, inject() usage, and providers.

HoangNguyen0403 581 164 Actualitzat fa 9 mesos

Recursos

1
GitHub

Instal·la

npx skillscat add hoangnguyen0403/agent-skills-standard/dependency-injection

Instal·la des del registre de SkillsCat.

SKILL.md

Dependency Injection

Priority: P0 (CRITICAL)

Principles

  • inject() over Constructor: Use the inject() function for cleaner injection updates and type inference.
  • Tree Shaking: Always use providedIn: 'root' for services unless specific scoping is required.
  • Tokens: Use InjectionToken<T> for configuration, primitives, or interface abstraction.

Guidelines

  • Providers: Prefer provide* functions (e.g., provideHttpClient()) in app.config.ts over importing modules.
  • Factories: Use useFactory strictly when dependencies need runtime configuration.

Anti-Patterns

  • Global State: Avoid providedIn: 'platform' unless absolutely necessary (share between Micro Frontends).
  • Circular Deps: Use forwardRef only as a last resort; refactor architecture instead.

References