# 什么是 Zod

URL: https://caijiao.org/zod/what-is-zod
Source: docs/zod/what-is-zod.md
Description: Zod 是一个以 TypeScript 为首的模式声明和验证库，用于构建类型安全的应用程序

Zod 是一个 TypeScript 优先的模式声明和验证库。我使用术语 "模式" 来广义地指任何数据类型，从简单的 `字符串` 到复杂的嵌套对象。

Zod 围绕尽可能友好的开发体验而设计。其目的是消除重复的类型声明。使用 Zod，你只需声明 _一次_ 验证器，Zod 就会自动推断出静态 TypeScript 类型。将简单类型组合成复杂的数据结构非常容易。

## 主要特点

- 零依赖
- 适用于 Node.js 和所有现代浏览器
- 小巧: 压缩后仅 8kb
- 不可变: 方法 (如 `.optional()` ) 返回一个新的实例
- 简洁的、可链式调用的接口
- 函数式方法: [解析，不验证](https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/)
- 也可用于纯 JavaScript! 你不需要使用 TypeScript。

## 安装

```bash
npm install zod
```

## 基本用法

```ts
import { z } from "zod";

// 创建一个字符串的模式
const mySchema = z.string();

// 解析
mySchema.parse("tuna"); // => "tuna"
mySchema.parse(12); // => throws ZodError

// "安全"解析(如果验证失败不抛出错误)
mySchema.safeParse("tuna"); // => { success: true; data: "tuna" }
mySchema.safeParse(12); // => { success: false; error: ZodError }
```
