Тег

Zod

2 материалов

«Parse, don't validate» в языке, который сопротивляется: беда структурной типизации TypeScript (cekrem.github.io)

Эссе разбирает, как заставить принцип «parse, don't validate» работать в TypeScript, где из-за структурной типизации проверенный Email неотличим от любой строки. Лекарство — branded-тип: фантомный символ, из-за которого Email несовместим со string на этапе компиляции и исчезает в рантайме.

Старожилы треда разошлись, настоящая ли это идея или подмена: один считает, что брендирование лишь навешивает на строку ярлык «проверено», другой возражает, что любая гарантия типа — это в конечном счёте валидация, которой компилятор согласился доверять.

Не просто заголовок — разбор дискуссии

Главные треды HN: факты из обсуждений, разные стороны, голоса инсайдеров. Email, Telegram или RSS.

Автор Zod собрал Bun-подобный тулкит, который не меняет рантайм Node (github.com)

Nub — бинарник на Rust, подключающий транспилятор oxc к Node через module.registerHooks() и --import preload: TypeScript, JSX и .env загружаются без шага сборки на рантайме, который уже везде есть.

Мейнтейнер ArkType говорит, что перенёс весь монорепозиторий без единой проблемы. Но знаток внутренностей Node поднял вопрос о хуке --require: он может незаметно сломать top-level await в ESM.