0Pricing
Angular Academy · Урок

Токены внедрения

Внедряйте значения, не являющиеся классами, с помощью токенов.

«Токены внедрения» — бесплатный урок Angular Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Angular Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Angular Academy содержит 4 уроков всего.

Токены внедрения

Не каждая зависимость является классом. Чтобы внедрять такие значения, как объекты конфигурации, строки или интерфейсы, используется InjectionToken как уникальный ключ.

Зачем нужны токены

Классы можно использовать непосредственно как ключи DI, но интерфейсы и примитивные значения нельзя, поскольку интерфейсы исчезают во время выполнения. InjectionToken предоставляет стабильный типизированный ключ для таких случаев.

Создание токена

Создайте токен с помощью new InjectionToken<T>, передав понятное человеку описание.

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

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

Параметр типа

Обобщённый параметр типа, в данном случае string, задаёт токену тип, поэтому внедряемые значения получают правильную типизацию.

Предоставление значения токена

Зарегистрируйте токен со значением с помощью useValue в массиве providers.

// bootstrapApplication(AppComponent, {
//   providers: [{ provide: API_URL, useValue: 'https://api.example.com' }]
// });

Внедрение токена

Внедрите токен с помощью функции inject, чтобы получить его значение.

import { inject } from '@angular/core';
import { API_URL } from './tokens';

export class Api {
  private baseUrl = inject(API_URL);
}

Токены для конфигурации

Распространённый вариант использования — конфигурация приложения: определите интерфейс, создайте типизированный токен и предоставьте объект конфигурации.

export interface AppConfig { title: string; retries: number; }
export const APP_CONFIG = new InjectionToken<AppConfig>('APP_CONFIG');

Предоставление конфигурации

Затем предоставьте значение конфигурации при запуске приложения.

// providers: [{ provide: APP_CONFIG, useValue: { title: 'My App', retries: 3 } }]

Значения по умолчанию через фабрику

Токен может задавать значение по умолчанию через фабрику в своих параметрах, поэтому он работает даже без явного провайдера.

export const RETRIES = new InjectionToken<number>('RETRIES', {
  providedIn: 'root',
  factory: () => 3
});

Токены и классы

Используйте класс как ключ, если зависимость является классом сервиса. Используйте InjectionToken для внедрения значений, не являющихся классами: конфигураций, примитивов или объектов, типизированных интерфейсом.

Отказ от магических строк

InjectionTokens заменяют хрупкие строковые ключи типизированными идентификаторами без конфликтов, позволяя обнаруживать ошибки во время компиляции.

Быстрая проверка: токены

Внедрение значений, не являющихся классами.

Итоги: токены внедрения

Вы узнали, что InjectionToken предоставляет типизированные ключи для внедрения значений, не являющихся классами, например объектов конфигурации, строк и данных, типизированных интерфейсом. Создайте его с помощью new InjectionToken, предоставьте через useValue или фабрику со значением по умолчанию и внедрите с помощью inject(). Вы завершили курс «Внедрение зависимостей».

Часто задаваемые вопросы

Урок «Токены внедрения» бесплатный?

Да — полный текст урока «Токены внедрения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Angular Academy, подпишись на CoddyKit PRO. Курс Angular Academy содержит 4 уроков всего.

Чему я научусь в уроке «Токены внедрения»?

Внедряйте значения, не являющиеся классами, с помощью токенов. Ты практикуешь Angular Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Angular Academy?

Предыдущий опыт не требуется. Angular Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Токены внедрения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Angular Academy?

Да. Каждый урок Angular Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Службы и Injectable
  2. Функция inject
  3. Поставщики и области действия
  4. Токены внедрения
← Назад к Angular Academy