Что такое Dependency Injection в Angular и когда приходилось использовать InjectionToken, Injectable и функцию inject?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку