用途:为 TypeScript 应用中的 Zod 模式校验提供最佳实践指南,包含 8 个类别、43 条规则,按影响程度排序,可用于指导自动重构与代码生成。
适用时机:编写新的 Zod 模式;在 parse() 与 safeParse() 之间选择;用 z.infer 做类型推断;处理校验错误以反馈用户;组合复杂对象模式;使用 refinement 与 transform;优化打包体积与校验性能;审查 Zod 代码。
规则类别与优先级:1. 模式定义(CRITICAL,前缀 schema-);2. 解析与校验(CRITICAL,parse-);3. 类型推断(HIGH,type-);4. 错误处理(HIGH,error-);5. 对象模式(MEDIUM-HIGH,object-);6. 模式组合(MEDIUM,compose-);7. Refinement 与 Transform(MEDIUM,refine-);8. 性能与打包(LOW-MEDIUM,perf-)。
主要规则示例:模式定义方面,正确使用基础类型、用 z.unknown() 替代 z.any()、避免滥用 optional、在定义处应用字符串校验、固定字符串用枚举、表单与查询数据用 coercion。解析方面,用户输入用 safeParse()、异步 refinement 用 parseAsync、处理全部 issue、在系统边界尽早校验、避免重复校验、不信任 JSON.parse 输出。类型推断方面,用 z.infer 替代手写类型、区分 z.input 与 z.infer、同时导出模式与推断类型、用 branded types、开启 TypeScript strict 模式。错误处理方面,提供自定义错误消息、表单展示用 flatten()、嵌套错误用 issue.path、支持国际化、refine 中返回 false 而非抛异常。对象模式方面,选择 strict() 或 strip()、更新模式用 partial()、用 pick()/omit() 生成变体、用 extend() 组合、区分 optional() 与 nullable()、用可辨识联合做类型收窄。组合方面,抽取共享模式、用 intersection()、用 z.lazy() 处理递归、用 preprocess() 归一化、用 pipe() 多阶段校验。Refinement 方面,正确选择 refine() 与 superRefine()、区分 transform()/refine()/coerce()、为 refinement 错误加 path、用 default() 设默认值、用 catch() 容错解析。性能方面,缓存模式实例、打包敏感场景用 Zod Mini、避免热路径动态创建模式、懒加载大型模式、优化大数组校验。
使用方式:阅读各参考文件获取详细说明与代码示例,包括章节定义、规则模板,以及 references/{prefix}-{slug}.md 形式的单条规则;完整指南见 AGENTS.md。相关技能:React Hook Form 集成见 react-hook-form 技能,API 客户端生成见 orval 技能。
限制:资料未提供具体安装命令、版本要求、收费信息或实测效果数据。