Sobes.tech
Back to questions
Middle+
4

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

Companies where asked
Банк Ренессанс

Answer from AI

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) {}