Что такое InjectionToken

Ответ

InjectionToken — это механизм в Angular для создания уникальных токенов, которые можно использовать в DI (Dependency Injection). Позволяет безопасно инжектировать значения, которые не являются классами (примитивы, объекты, функции).

Пример:

import { InjectionToken } from '@angular/core';

export const API_URL = new InjectionToken<string>('API endpoint URL');

// В модуле:
providers: [
  { provide: API_URL, useValue: 'https://api.example.com' }
]

// В компоненте:
constructor(@Inject(API_URL) private apiUrl: string) {}

Ключевые особенности:

  • Гарантирует уникальность токена
  • Позволяет типизировать инжектируемое значение
  • Описание токена (строковый параметр) помогает при дебаге
  • Альтернатива строковым токенам (которые небезопасны)