Ыаа, как же сложно конструировать сложные типы в TypeScript!

Ыаа, как же сложно конструировать сложные типы в TypeScript!

Слава богу меня Chat GPT выручил и пояснил, как сделать то, что я хочу. До чего дошел прогресс.

88
55
11
65 комментариев

Фу Any. Пахнешь слабостью. Хорошо не на rust пишешь, а то борцы с unsafe обоссали бы

15

Борцы с unsafe забывают, что это всё чудесно работает до первого обращения вне приложения, то бишь в стороннее приложение/БД. Тот же PostgreSQL может вернуть валидную строку даты достаточно большим диапазоном видов, если не приводить тип на выдаче принудительно, ну и с числами там мемы, так как системы типов между Rust и этим диалектом SQL сильно расходятся, ибо SQL не знает такого типа как массив нативно, для неё это всё строка с разными правилами парсинга, а не разные структуры.
То же самое касается условного ответа по API или чтения XML-шины.

Во всех этих ситуация, Rust вроде как по-дефолту просто упадет (давно не писал на нем и не помню это было поведение с коробки или это я чего настроил) при несоответствии типов, но это такой себе safe, о котором любят умалчивать и не вспоминать)

Все штуки на грани интерфейсного общения двух независимых высокоабстрактных юнитов не могут быть type-safe.

3
3

Люблю незащищенный

1

А потом ты такой взял библиотеку с подобной хернёй под капотом, передаёшь параметры в метод. А TypeScript тебе говорит - несовместимы твои параметры, иди разгадывай в каком из 10 extend-ов и &-ов оно определилось да переопределилось. И никакой понтовый редактор кода тебе не подскажет, какой параметр от Рюриковичей, а какой от финно-угорских племён.

7

Как же сложно жить пиздец

5

А вот жить вас никто не заставляет