💎 Zod 4 稳定版已发布!  请阅读发布说明。
Zod logo

Zod 简介

Zod logo

Zod

原生支持 TypeScript 的数据校验库,并且具备静态类型推导功能
by @colinhacks


Website  •  Discord  •  𝕏  •  Bluesky

Zod 4 稳定版已发布!请阅读发布说明

简介

Zod 是一个原生支持 TypeScript 的数据校验库。通过使用 Zod,你可以定义 模式(schemas) 并用其校验数据,无论要校验的数据是简单的 string 类型还是复杂的嵌套对象。

import * as z from "zod/v4";
 
const User = z.object({
  name: z.string(),
});
 
// 一些不受信任的数据...
const input = { /* stuff */ };
 
// 解析结果经过校验,并且类型安全!
const data = User.parse(input);
 
// 接下来你就可以放心使用它们了 :)
console.log(data.name);

特性

  • 零外部依赖
  • 支持 Node.js 和所有现代浏览器
  • 轻量:核心包仅 2kb(gzip 压缩后)
  • 不可变(Immutable) API:所有方法均返回新实例
  • 简洁的 API 设计
  • 兼容 TypeScript 和纯 JS
  • 内置 JSON Schema 转换
  • 丰富的生态系统

安装

npm install zod       # npm
deno add npm:zod      # deno
yarn add zod          # yarn
bun add zod           # bun
pnpm add zod          # pnpm

Zod 还会为每个 commit 发布 canary(金丝雀) 版本。安装 canary 版本的方法如下:

npm install zod@canary       # npm
deno add npm:zod@canary      # deno
yarn add zod@canary          # yarn
bun add zod@canary           # bun
pnpm add zod@canary          # pnpm

运行环境要求

Zod 已在 TypeScript v5.5 及更高版本中测试通过。较旧版本也可能可以工作,但不提供官方支持。

"strict"

你必须在 tsconfig.json 中启用 strict 模式。这是所有 TypeScript 项目的最佳实践。

// tsconfig.json
{
  // ...
  "compilerOptions": {
    // ...
    "strict": true
  }
}

"moduleResolution"

"moduleResolution" 配置项应该设置为以下选项之一。不支持传统的 "node""classic" 模式,因为这些模式不支持子路径导入(subpath imports)。

  • "node16" (当 "module" 设置为 "node16"/"node18" 时的默认值)
  • "nodenext" (当 "module" 设置为 "nodenext" 时的默认值)
  • "bundler"

On this page