上海

Zod 的 schema 就是文档

const User = z.object({
  email: z.string().email(),
  age: z.number().int().min(13),
  role: z.enum(['admin', 'member']),
});

type User = z.infer<typeof User>;

这段代码同时是:

  • 类型定义
  • 运行时校验
  • API 文档
  • 测试用例的输入约束

写一次,受益四次。