Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 8

Чем такой подход лучше проверки типов на входе через class-validator? Там тоже декларативно в TS описываются типы, но через классы. Что позволяет накидать ещё сверху деталей валидации через декораторы, потому что типов TS явно не достаточно для валидации входных данных, но при этом в конце у нас остаются вполне себе TS объекты с четкой валидацией уже на уровне типов.

А для тех кто не любит декларации есть joi, а также zod, a для дедов можно и ajv.

Генератор интересно, но не оверхед ли выйдет?

На самом деле ещё вопрос что лучше... Тот же joi вообще предварительно компилирует как то по своему шаблоны под капотом, например.) про остальные не знаю...

Могу представить почему такое решение вообще в теории существует - простота и быстрота по отношению к другим решениям в каком то аспекте нужном разработчику... Но это уже все спекуляции.

Да, простота и скорость были важным ориентиром, но в моем решении главное это типобезопасность. Результирующий код тоже строго чекается тайпскриптом.

Ну еще из плюсов, что нет зависимостей, нет движка логики, все летает на JIT и минифицируется почти в ноль. Не нужен eval, котороге нет например в клаудфлеровских воркерах.

Привет! Я автор этой тулзы. Чем моя тулза лучше других? Главное это то что она выплёвывает тайпскрипт, а не яваскрипт. Этот тайпскрипт потом проверяется в твоём проекте вместе с остальным кодом на соответствие типам и на то, что само тело предиката проверяет тот тип, который удостоверяет.

Остальные решения генерят либо нетипизированный яваскрипт либо тайпскрипт, который внутри полагается на доверие или напрямую на any.

Чем этот проект лучше ts-runtime-checks?

https://github.com/GoogleFeud/ts-runtime-checks

Проект есть, но в продакшн мало кто его подключает, мне пока сложно понять почему. Вы изучали проблемы внедрения подобных анализаторов в проект?

Да, этот проект я видел и он мне еще давно очень понравился. Фундаментально все такие проекты включая мой — это просто мини компиляторы. Но есть нюансы 🙂

Моя тулза генерит тайпскрипт, который я бы написал руками для проекта со strict: true. Этому коду можно доверять. Плюс, моя тулза не требует плагинов к tsc, что является блокером во всех проектах в крупных компаниях.

По мелочи, код моей тулзы это три файла, может 2K LOC, и ее можно в любой момент выключить, так как файлы с чеками уже есть и их можно поправить руками.

Ну еще она генерит реально быстрый код, который для простых типов укладывается в один if 🚀

Таких проектов на самом деле много и делают их давно. В известном бенчмарке почти все топовые решения примерно так и работают.

О, спасибо. Аналоги я поизучал ессно, но этот бенч не видел. Сам код бенча меня настораживает, но добавиться стоит имхо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости