如何在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
相关产品推荐
相关产品推荐

