You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Zod中显式跳过Schema的部分校验?

在Zod中跳过Schema的部分元素校验

当然可以实现这种部分校验的需求,你只需要调整data字段的Schema规则,从严格校验数组元素改成仅校验它是数组类型即可:

修改后的代码如下:

import { z } from 'zod';

const foo = z.object({
  id: z.number(),
  // 只校验data是数组,完全跳过元素校验
  data: z.array(z.unknown()),
});

说明

  • z.unknown()表示允许任意类型的元素,Zod不会对数组内的元素做任何校验,只会检查data本身是不是数组类型
  • 这种写法既满足了你对id(数字类型)和data(数组类型)的校验要求,又能避免大数据量下元素校验带来的性能开销

如果你的场景里甚至不需要确认数组元素的类型(只要是数组就行),z.array(z.any())也能达到同样的效果,两种写法的差异很小,选你习惯的就行。

内容的提问来源于stack exchange,提问作者doberkofler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:55:29