Условные типы
Узнайте, как условные типы динамически изменяются в зависимости от условий, обеспечивая гибкость и повторное использование определений типов
«Условные типы» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 3 уроков всего.
Введение в условные типы
Введение в условные типы
Условные типы в TypeScript позволяют создавать типы, которые динамически адаптируются к условию, делая код более гибким и пригодным для повторного использования.
Они используют синтаксис, похожий на синтаксис условного (ternary) оператора JavaScript.

Что такое условные типы
Что такое условные типы?
Условные типы позволяют определить тип, зависящий от другого типа. Базовый синтаксис выглядит так:
T extends U ? X : Y
Это означает: если T расширяет U, типом будет X, иначе — Y.
Базовый пример условных типов
Базовый пример условных типов
Вот простой пример:
type IsString<T> = T extends string ? 'Yes' : 'No';
// Test cases
type A = IsString<string>; // 'Yes'
type B = IsString<number>; // 'No'Использование условных типов для перегрузки функций
Использование условных типов для перегрузки функций
Условные типы могут упростить перегрузку функций, динамически определяя возвращаемые типы:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function getData(): string {
return 'Hello';
}
type DataType = ReturnType<typeof getData>; // stringРаспределительные условные типы
Распределительные условные типы
Когда условные типы применяются к объединённым типам, они распределяются по каждому элементу объединения:
type ToArray<T> = T extends any ? T[] : never;
type A = ToArray<string | number>;
// A = string[] | number[]Объединение условных и отображаемых типов
Объединение условных и отображаемых типов
Вы можете объединять условные типы с отображаемыми типами для мощного преобразования типов:
type User = {
id: number;
name: string;
isAdmin?: boolean;
};
type MakeRequired<T> = {
[K in keyof T]-?: T[K] extends undefined ? never : T[K];
};
type RequiredUser = MakeRequired<User>;
// { id: number; name: string; isAdmin: never; }Распространённые случаи использования условных типов
Распространённые случаи использования условных типов
Условные типы часто применяются для:
- Вывода возвращаемых типов или параметров.
- Преобразования объединений и пересечений.
- Создания вспомогательных типов, таких как
Exclude,ExtractиNonNullable.
Практическое задание
Практическое задание
Создайте условный тип, который проверяет, является ли тип массивом, и в таком случае возвращает тип его элементов; иначе он возвращает сам тип.
Поздравляем!
Поздравляем!
Вы научились использовать условные типы для создания динамических и пригодных для повторного использования определений типов в TypeScript. Потренируйтесь применять эти концепции, чтобы писать более мощный и гибкий код на TypeScript!

Часто задаваемые вопросы
Урок «Условные типы» бесплатный?
Да — полный текст урока «Условные типы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «Условные типы»?
Узнайте, как условные типы динамически изменяются в зависимости от условий, обеспечивая гибкость и повторное использование определений типов Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.
Сколько времени занимает урок «Условные типы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.