Ответ
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) {}
Ключевые особенности:
- Гарантирует уникальность токена
- Позволяет типизировать инжектируемое значение
- Описание токена (строковый параметр) помогает при дебаге
- Альтернатива строковым токенам (которые небезопасны)