169 похожих чатов

А можно превратить type A = B | C в


['B', 'C']?

гуглю и везде только наоборот как сделать народ интересуется (что конечно справедливо, но БЛИН)

18 ответов

18 просмотров

Можно, но там довольно люто 1. Превратить юнион в юнион объектов через distributive conditional 2. Превратить юнион в интерсекшен 3. Кондишенал по интерсекшену возвращает последний элемент интерсекшена. Отрезаем его рекурсивно от оригинального типа, добавляя в конец результирующего тупла

как-то так

Это превратится в тип массива, а просили получить значение насколько я понял

Nick-Volkov Автор вопроса

ага

Чот там в Х1 юнион на 40000 вариантов

Значения тайпскрипт не генерирует.

Ну так да, 8! = 40320

все комбинации видимо

А только один слабо? :)

слабо, но поучился бы)

Откуда код, кстати? Я подобные вещи видел, но они были существенно длиннее до ТС 4

сам придумал, единственное только утилику isUnion взял тут

Записал в книжечку с чёрной магией

Я думаю, что ответ подразумевался не мне. Но вот этот комбинаторный взрыв — это нездоровая фигня какая-то. Можно проверять, например, что union mapped values тип совпадает с 1 | 2 | ... | N, а также длину кортежа.

ну в моем решении все 40320 вариантов под этот критерий подходят)

Ну так и должны. Я придумал (вроде верный) критерий на тип, который можно проверить, не генерируя комбинаторный взрыв.

чет не пойму как такое написать, можешь пример?

ааа, ты имеешь ввиду вывести тип из массива и сравнить с union?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта