Библиотека схем для TypeScript и ReScript: проверяет, разбирает и кодирует данные по одному описанию в JSON, формах и Protobuf.
samchon/typia
TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных.
Open source альтернатива:class-validator
- Звёзды
- 5,963
- Форки
- 233
- Открытые issues
- 5
- Последний коммит
- вчера
Что это?
typia преобразует типы TypeScript в runtime-функции на этапе сборки. Вы пишете, например, typia.is<T>() или typia.assert<T>(), а трансформер анализирует T во время компиляции и генерирует отдельную функцию проверки — без дополнительных схем и runtime-рефлексии.
Библиотека охватывает несколько задач: runtime-валидаторы (is, assert, validate), расширенную работу с JSON с генерацией схем и более быстрыми функциями stringify и parse, генерацию сообщений Protocol Buffer с encode и decode, а также генератор случайных данных. В неё также входит модуль вызова функций LLM: он строит схемы инструментов на основе типов классов и проверяет или разбирает вывод модели.
Для typia нужен toolchain ttsc, а не обычные tsc, ts-node или tsx, поскольку стандартные инструменты не применяют трансформацию. Интеграция с бандлерами доступна через @ttsc/unplugin для Vite, Next.js, Webpack, Rollup и esbuild.
Ключевые возможности
- 01Генерирует проверки типов на этапе сборки на основе обычных типов TypeScript, без файлов схем.
- 02Предоставляет функции is, assert и validate для runtime-валидации.
- 03Генерирует JSON Schema и предоставляет типобезопасные функции stringify и parse.
- 04Кодирует и декодирует сообщения Protocol Buffer на основе типов TypeScript.
- 05Создаёт схемы для вызова функций в инструментах LLM и проверяет вывод модели.
- 06Включает генератор случайных данных на основе типов TypeScript.
Сценарии использования
- Проверка тел API-запросов в бэкенде на TypeScript без отдельных схем.
- Быстрая сериализация JSON для известных типов.
- Создание определений инструментов для вызова функций LLM на основе классов TypeScript.
- Генерация тестовых данных на основе существующих типов.
Быстрый старт
- 1
Установите typia и набор инструментов ttsc/TypeScript
npm i typia npm i -D ttsc typescript - 2
Соберите проект с помощью ttsc (стандартный tsc не применит трансформацию)
npx ttsc - 3
Запустите скрипт напрямую с помощью ttsx
npx ttsx src/index.ts
Что важно знать
- Требуется набор инструментов ttsc; стандартные tsc, ts-node и tsx не могут применить трансформацию.
- Для использования со сборщиком требуется отдельный пакет @ttsc/unplugin.
В подборках
Темы
Частые вопросы
- Что такое typia?
- TypeScript-трансформер, который на этапе сборки превращает обычные типы TypeScript в runtime-валидаторы, JSON-сериализаторы, кодеки protobuf и генераторы случайных данных. typia преобразует типы TypeScript в runtime-функции на этапе сборки. Вы пишете, например, typia.is<T>() или typia.assert<T>(), а трансформер анализирует T во время компиляции и генерирует отдельную функцию проверки — без дополнительных схем и runtime-рефлексии.
- typia можно использовать бесплатно? Какая у него лицензия?
- typia распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- typia всё ещё поддерживается?
- Активно поддерживается. Последний коммит в typia — 6 нояб. 2026 г..
- Для чего можно использовать typia?
- Проверка тел API-запросов в бэкенде на TypeScript без отдельных схем. Быстрая сериализация JSON для известных типов. Создание определений инструментов для вызова функций LLM на основе классов TypeScript. Генерация тестовых данных на основе существующих типов.
- Как установить typia?
- Установите typia и набор инструментов ttsc/TypeScript: npm i typia npm i -D ttsc typescript Соберите проект с помощью ttsc (стандартный tsc не применит трансформацию): npx ttsc Запустите скрипт напрямую с помощью ttsx: npx ttsx src/index.ts
- Где скачать typia?
- Исходный код и инструкции по установке — на GitHub: https://github.com/samchon/typia
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрая библиотека для сериализации и валидации данных в Python: кодирует и декодирует JSON, MessagePack, YAML и TOML с помощью стандартных аннотаций типов.
Вспомогательные библиотеки TypeScript для NestJS: генерируют типизированные SDK, документацию Swagger, E2E-тесты и агентов для вызова функций LLM на основе контроллеров.
Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.
Создаёт типизированные модели и сериализаторы на разных языках по JSON, JSON Schema, TypeScript и GraphQL-запросам.
Библиотека валидации данных для Python: разбирает и проверяет данные по аннотациям типов, используя ядро на Rust.