Интересно, можно ли «разбить» типы объединения на конкретные подтипы в TypeScript.Это код, который я пытался использовать, должно быть очевидно, чего я пытаюсь добиться из фрагмента:
type SplitType<T> =
T extends (infer A)|(infer B)
? Something<A, B>
: T;
В этом примере Something<A, B>
может быть [A, B]
или совершенно другого типа,Это будет означать, что SplitType<string>
будет просто выводить string
, но SplitType<number|string>
будет означать [number, string]
.
Возможно ли что-то подобное в TypeScript?А если нет, то есть ли функция, которая позволит это в будущем (например, типы переменных )?