Что такое условные типы (Conditional Types) в TypeScript и как они работают?
СобеседованиеДженерикиПродвинутые типы
- Синтаксис:
T extends U ? X : Y — тернарный оператор на уровне типов
- Дистрибутивность: «голый» T в union распределяется: каждый член проверяется отдельно
- Отключение дистрибутивности: обернуть в кортеж
[T] extends [U] ? X : Y
- Проверка
never требует обёртки в кортеж (иначе условие не выполняется)
- Вложенные условные типы для цепочек проверок
- Часто применяются с
infer для извлечения частей типов