Zod
**Zod 是什么** Zod 是一个 TypeScript 优先的数据验证库
Zod 今日发布 Zod 是什么 Zod 是一个 TypeScript 优先的数据验证库 AI编程开发 部分免费 访问官网 ↗ 分享 认领产品 Zod 是什么 Zod 是一个 TypeScript 优先的数据验证库,用于在运行时验证不可信数据并自动推断静态类型。它诞生于 2020 年,凭借其极简的 API 设计和与 TypeScript 类型系统的高度一致性,已成为 TypeScript 生态中最流行的数据验证解决方案之一,被广泛应用于表单验证、API 响应校验、配置文件解析等场景。 核心设计理念 Zod 的设计哲学是让验证规则与 TypeScript 类型定义一一对应:定义一次 schema,即可同时获得运行时验证能力和静态类型保证。这种"一次定义,双重收益"的思路大幅减少了开发中的类型声明重复问题。 主要功能与 API 基础类型覆盖:string、number、boolean、date、undefined、null、nan 等 TypeScript 基础类型均有对应验证器。 复杂类型构建:通过 z.object() 定义对象结构,z.array() 定义数组,z.enum() 定义枚举,z.union() / z.discriminatedUnion() 处理联合类型,z.intersection() 处理交叉类型,z.record() / z.map() / z.set() 处理键值集合。 链式验证规则:所有类型均支持链式调用添加验证规则,例如 z.string().min(5).max(100).email(),规则丰富且 API 高度一致。 异步验证支持:通过 .parseAsync() 和 .refine() 的异步版本支持数据库查询、外部 API 校验等异步验证场景。 类型推导(Type Inference):使用 z.infer 从 schema 自动推导 TypeScript 类型,避免手动声明类型导致的错配。 JSON Schema 导出:内置 zod-to-json-schema 功能,可将 Zod schema 导出为标准 JSON Schema,便于与外部系统集成。 编译加速(z.compile):通过 z.compile(schema) 对 schema 进行提前编译,在 55 个 schema 的基准测试中,中位加速比为 2.4 倍,大型嵌套对象加速可达 9 倍。 预处理(z.preprocess):在验证前对原始输入进行转换,例如将字符串数字自动转为 number 类型,适合处理表单数据和外部 API 响应。 数据转换(z.transform):在验证通过后自动对数据进行结构转换,例如将 Unix 时间戳转为 Date 对象,实现验证与处理的流水线化。 品牌类型(Branded Types):通过 .brand() 创建名义类型系统(nominal typing),区分结构相同但语义不同的数据类型。 生态系统 Zod 拥有繁荣的周边生态,包括: tRPC:端到端类型安全的 API 框架,以 Zod schema 作为 API 契约。 React Hook Form:主流表单库,提供 Zod 解析器(resolver)实现无缝集成。 zod-to-json-schema:将 Zod schema 导出为标准 JSON Schema。 json-schema-to-zod:反向工具,将已有 JSON Schema 转为 Zod 代码。 Prisma Zod Generator:Prisma ORM 官方支持,从
评论与建议
登录 后参与评论或提建议