Repolode
samchon

samchon/typia

基于编译期转换的 TypeScript 库,把纯类型定义编译为运行时校验、JSON 序列化等函数。

可替代:class-validator

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. 1

    安装 typia 及 ttsc/typescript 工具链

    npm i typia npm i -D ttsc typescript
  2. 2

    使用 ttsc 构建项目(标准 tsc 无法应用转换)

    npx ttsc
  3. 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 数据每日更新。

相关项目