Sobes.tech
Назад к вопросам
Middle+
3

Как реализован принцип Dependency Inversion в Angular? Что такое InjectionToken?

Компании, где спрашивали
Банк Ренессанс

Ответ от нейросети

sobes.tech AI

В Angular принцип Dependency Inversion реализован через механизм Dependency Injection (DI). Вместо того чтобы компоненты сами создавали зависимости, они получают их извне, что повышает модульность и тестируемость.

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

Пример использования InjectionToken:

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

export const API_URL = new InjectionToken<string>('apiUrl');

// В провайдерах модуля
providers: [
  { provide: API_URL, useValue: 'https://api.example.com' }
]

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