用途:Zod 是 TypeScript 优先的校验库,用于在运行时校验数据,并自动推断静态 TypeScript 类型。适合校验 API 请求/响应、表单数据、环境变量与配置,以及定义类型安全的 schema。
主要能力:支持字符串、数字、布尔、日期、BigInt、文件、JSON 等基础类型,以及对象、数组、元组、枚举、字面量、联合、交叉、Record、Map、Set 等复杂类型。提供 refine、superRefine、transform、preprocess、pipe、codec 等自定义校验与转换能力,并支持递归类型、只读、brand 名义类型。错误处理提供 flattenError、treeifyError、prettifyError 等格式化方法,支持 schema、单次解析、全局三级自定义错误与 40 多种语言本地化。类型推断提供 z.infer、z.input、z.output,并可通过 z.toJSONSchema 生成 JSON Schema。
使用方式:安装命令为 bun add zod、npm install zod、pnpm add zod 或 yarn add zod。要求 TypeScript v5.5+ 且 tsconfig.json 开启 strict,Zod 4.x(推荐 4.4.x,z.codec() 需 4.1+)。导入路径包括 zod、zod/v4、zod/mini、zod/v4/core。基本用法是定义 schema 后调用 .parse() 或 .safeParse(),异步场景用 .parseAsync() 或 .safeParseAsync()。
适用场景:API 请求响应校验、表单校验、环境变量与配置校验、类型安全 schema 定义。
限制:本文档针对 Zod 4.x,z.codec()、z.iso.*、z.toJSONSchema()、z.treeifyError()、.meta()、.check()、z.file()、z.json()、z.stringbool()、z.xor()、z.templateLiteral() 等 API 在 Zod 3.x 中不可用。v4 有破坏性变更,如统一 error 参数、数字校验更严格、字符串格式推荐顶层函数、.deepPartial() 被移除、v3 链式 z.function().args().returns() 被移除。迁移细节需参考官方迁移指南。