У меня есть условный тип, который использует универсальный тип T
для определения типа Array<T>
.В качестве надуманного примера:
type X<T> = T extends string ? Array<T> : never;
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я предоставляю тип объединения, он распространяется как объединение двух типов массивов вместо массива моего типа объединения.
// compiler complains because it expects Array<'one'> | Array<'two'>
const y: X<'one' | 'two'> = ['one', 'two'];
Есть ли способ напечатать это так, что мой условный тип производит массив <'one' |'two'> если условие выполнено?