['B', 'C']?
гуглю и везде только наоборот как сделать народ интересуется (что конечно справедливо, но БЛИН)
Можно, но там довольно люто 1. Превратить юнион в юнион объектов через distributive conditional 2. Превратить юнион в интерсекшен 3. Кондишенал по интерсекшену возвращает последний элемент интерсекшена. Отрезаем его рекурсивно от оригинального типа, добавляя в конец результирующего тупла
как-то так
Это превратится в тип массива, а просили получить значение насколько я понял
ага
Чот там в Х1 юнион на 40000 вариантов
Значения тайпскрипт не генерирует.
Ну так да, 8! = 40320
все комбинации видимо
А только один слабо? :)
слабо, но поучился бы)
Откуда код, кстати? Я подобные вещи видел, но они были существенно длиннее до ТС 4
сам придумал, единственное только утилику isUnion взял тут
Записал в книжечку с чёрной магией
Я думаю, что ответ подразумевался не мне. Но вот этот комбинаторный взрыв — это нездоровая фигня какая-то. Можно проверять, например, что union mapped values тип совпадает с 1 | 2 | ... | N, а также длину кортежа.
ну в моем решении все 40320 вариантов под этот критерий подходят)
Ну так и должны. Я придумал (вроде верный) критерий на тип, который можно проверить, не генерируя комбинаторный взрыв.
чет не пойму как такое написать, можешь пример?
ааа, ты имеешь ввиду вывести тип из массива и сравнить с union?
Обсуждают сегодня