TypeScript 与 ReScript 通用 Schema 库,一次声明即可完成数据校验、解析与编码,支持 JSON、表单和 Protobuf。
- Star
- 5,962
- Fork
- 233
- 未关闭 Issue
- 5
- 最近提交
- 21小时前
这是什么?
typia 在构建阶段把 TypeScript 类型转换为运行时函数。调用 typia.is<T>() 或 typia.assert<T>() 时,转换器会在编译期分析类型 T,并生成专用的校验函数,无需额外编写 schema,也不依赖运行时反射。
该库涵盖多个方向:运行时校验(is、assert、validate)、增强的 JSON 功能(包括 JSON Schema 生成及 stringify、parse 等序列化函数)、Protocol Buffer 消息定义与编解码,以及随机数据生成器。此外还提供 LLM 函数调用模块,可根据类型生成工具 schema,并对模型输出进行校验和解析。
使用 typia 需要配合 ttsc 工具链,原生的 tsc、ts-node 和 tsx 无法应用该转换。打包工具方面,可通过 @ttsc/unplugin 接入 Vite、Next.js、Webpack、Rollup 和 esbuild。
核心功能
- 01在构建阶段由纯 TypeScript 类型生成校验函数,无需 schema 文件。
- 02提供 is、assert、validate 等运行时校验函数。
- 03生成 JSON Schema,并提供类型安全的 stringify 与 parse 函数。
- 04根据 TypeScript 类型进行 Protocol Buffer 消息的编码与解码。
- 05为 LLM 工具生成函数调用 schema,并校验模型输出。
- 06内置基于类型的随机数据生成器。
适用场景
- 在 TypeScript 后端中校验 API 请求体,无需单独编写 schema。
- 为已知类型提供更快的 JSON 序列化。
- 根据 TypeScript 类来构建 LLM 函数调用的工具定义。
- 基于现有类型生成测试数据。
快速上手
- 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 库,把纯类型定义编译为运行时校验、JSON 序列化等函数。 typia 在构建阶段把 TypeScript 类型转换为运行时函数。调用 typia.is<T>() 或 typia.assert<T>() 时,转换器会在编译期分析类型 T,并生成专用的校验函数,无需额外编写 schema,也不依赖运行时反射。
- typia 可以免费使用吗?用的什么许可证?
- typia 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- typia 还在维护吗?
- 活跃维护中。typia 最近一次提交是在 2026年11月6日。
- typia 适合用来做什么?
- 在 TypeScript 后端中校验 API 请求体,无需单独编写 schema。 为已知类型提供更快的 JSON 序列化。 根据 TypeScript 类来构建 LLM 函数调用的工具定义。 基于现有类型生成测试数据。
- 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。
面向 NestJS 的 TypeScript 辅助库,可从控制器生成类型化 SDK、Swagger 文档、E2E 测试及 LLM 函数调用代理。
一种声明式模式语言,可由同一份 .skir 文件生成 TypeScript、Python、Java、Go、C++ 等多语言的类型安全数据模型与 RPC 代码。
从 JSON、JSON Schema、TypeScript 和 GraphQL 查询生成多种语言的强类型模型与序列化代码。
基于 Python 类型提示的数据校验库,可解析并校验外部数据,核心由 Rust 实现。