form union to tuple?
без вот этих монструозных записей?
Вытащенной из того же обсуждения код, не то что бы он очень понятный, зато коротко)
да вот его и читаю
Вы хотите из юниона сделать упорядоченный набор, ts не знает какой порядок выбрать и конструирует юнион всех перестановок, что ведёт к комбинаторному взрыву и не надёжной работе после N членов юниона, так лучше не делать
нашлось одно решение и на удивление работает export type UnionToIntersection<U> = ( U extends never ? never : (arg: U) => never ) extends (arg: infer I) => void ? I : never export type UnionToTuple<T> = UnionToIntersection< T extends never ? never : (t: T) => T > extends (_: never) => infer W ? [...UnionToTuple<Exclude<T, W>>, W] : []
Я не говорил что его нет)
Обсуждают сегодня