Что такое Distributive Conditional Types в TypeScript?
Вопрос проверяет знание особенностей работы условных типов с union-типами.
Короткий ответ
Distributive Conditional Types — это условные типы, которые автоматически распределяются по элементам union-типа. Это мощный механизм для трансформации типов в более гибкие и детализированные конструкции.
Длинный ответ
Distributive Conditional Types позволяют автоматически применять условные типы ко всем элементам union-типа. Если передать в условный тип union, TypeScript разложит этот тип на отдельные части и применит условие ко всем элементам. Это позволяет динамически трансформировать сложные типы, не дублируя код.
Пример:
type ToArray<T> = T extends any ? T[] : never;
type A = ToArray<number>; // number[]
type B = ToArray<number | string>; // number[] | string[]В этом примере тип ToArray создает массивы для каждого типа внутри union-типа.