Условные типы (введение) и распределение по объединениям
Изучите условные типы (T extends U ? X : Y) и узнайте, как они распределяются по объединениям, обеспечивая мощную логику на уровне типов.
«Условные типы (введение) и распределение по объединениям» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 3 уроков всего.
Введение
Цель: использовать условные типы (T extends U ? X : Y) для ветвления на уровне типов и понять, как распределение по объединениям обеспечивает точные результаты.
Базовое условие
Условный тип возвращает один из двух типов в зависимости от того, выполняется ли T extends U.
type IsString<T> = T extends string ? true : false;
let a: IsString<string>; // true
let b: IsString<number>; // false
Распределение
С необёрнутым параметром типа T условие выполняется для каждого элемента объединения, после чего результаты объединяются.
type ToArray<T> = T extends any ? T[] : never;
type R1 = ToArray<string | number>; // string[] | number[]Остановка распределения
Оберните T в кортеж (например, [T]), чтобы остановить распределение и рассматривать объединение целиком.
type ToArrayNoDistrib<T> = [T] extends [any] ? T[] : never;
type R2 = ToArrayNoDistrib<string | number>; // (string | number)[]Практическое применение Exclude
Многие типы-утилиты используют распределение (например, Exclude и Extract). Вы легко можете создавать собственные варианты.
type MyExclude<T, U> = T extends U ? never : T;
type R3 = MyExclude<"a" | "b" | "c", "b">; // "a" | "c"Советы
Советы:
- Распределение происходит только у необёрнутого параметра типа слева от
extends. - Оберните параметр в кортеж, чтобы отключить распределение.
- Проверяйте небольшие примеры, чтобы подтвердить свои предположения.
Проверка распределения
Быстрая проверка: Почему условные типы распределяются по объединениям?
Итоги
Итоги: Используйте условные типы для ветвления на уровне типов. Понимайте, когда результаты распределяются по объединениям и как отключить это с помощью оборачивания в кортеж.
Часто задаваемые вопросы
Урок «Условные типы (введение) и распределение по объединениям» бесплатный?
Да — полный текст урока «Условные типы (введение) и распределение по объединениям» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «Условные типы (введение) и распределение по объединениям»?
Изучите условные типы (T extends U ? X : Y) и узнайте, как они распределяются по объединениям, обеспечивая мощную логику на уровне типов. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Условные типы (введение) и распределение по объединениям»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Обобщённые интерфейсы и псевдонимы типов
- Условные типы (введение) и распределение по объединениям
- Повторно используемые шаблоны для моделей данных