我有这样的架构:
z.object({
name: z.string().min(3),
email: z.string().min(3),
})
但是如果这两个属性中至少有一个通过验证,我想让它通过验证。我想做:
z.object({
name: z.string().min(3),
email: z.string().min(3),
}).refine((res) => res.name || res.email)
但是如果任何对象属性失败,仍然会出现错误,并且在细化中,我实际上没有检查
name
和 email
的验证是否通过,但我只检查它们是否已定义。如何使用zod
让它变得漂亮?
更新您的架构如下:
z.object({
name: z.string().min(3),
email: z.string().min(3),
}).or(
z.object({
name: z.string().min(3),
}),
z.object({
email: z.string().min(3),
}),
);
您可以了解更多这里