用途:Zod 4 是 TypeScript 优先的 schema 校验库,核心包约 2kb(gzip)、零依赖,用于定义数据结构并在运行时校验,同时通过类型推断得到静态 TypeScript 类型。当前稳定版本为 zod@^4.0.0。
主要能力:导入 import * as z from "zod";,需要更小体积可用 import * as z from "zod/mini";。解析用 schema.parse(data)(失败抛 ZodError)或 schema.safeParse(data),也支持异步 parseAsync/safeParseAsync。类型推断用 z.infer、z.input、z.output。提供基础类型、coerce 转换、对象、数组、元组、Set、Map、联合、交叉、记录、字面量、枚举、文件、stringbool、模板字面量等。字符串格式改为顶层函数,如 z.email()、z.uuid()、z.url()、z.jwt()、z.iso.datetime(),不再使用 z.string().email() 等 Zod 3 写法。数字有 z.int()、z.int32()、z.float32() 等。对象可 extend/pick/omit/partial/required。错误定制使用统一 error 参数,支持 refine、superRefine,并可 z.toJSONSchema() 与 z.fromJSONSchema()。
使用方式:定义 schema 后调用 parse/safeParse 校验,用 z.infer 获取输出类型。Zod 4.1 引入 codec 做双向转换;.default() 现按输出类型,旧行为用 .prefault()。
限制:Zod 4 不兼容 Zod 3 的若干写法,z.record(z.string()) 单参数形式已移除,z.nativeEnum()、.strict()、.merge()、.deepPartial() 等已弃用,迁移需参考官方迁移说明。更多 Zod Mini、codecs、JSON Schema、进阶模式细节见其参考文档。