英文:
ZOD validation based on another field
问题
如果 field1
和 field2
都为空 - 不合法
如果 field1
和 field2
都不为空 - 不合法
其他情况都合法。
英文:
Imagine I have an object like
{
field1: 'test',
field2: 'test1'
}
How I can create the following validation:
If field1
and field2
both are empty - it is not valid
If field1
and field2
both are not empty - it is not valid
Other cases are valid.
答案1
得分: 18
you can use .refine()
const res = z.object({
field1: z.string().optional(),
field2: z.string().optional(),
})
.refine(schema => (schema.field1 === undefined && schema.field2 === undefined
|| schema.field2 !== undefined && schema.field1 !== undefined) ? false : true,
{
message: 'your message'
})
英文:
you can use .refine()
const res = z.object({
field1: z.string().optional(),
field2: z.string().optional(),
})
.refine(schema => (schema.field1===undefined && schema.field2===undefined
|| schema.field2!==undefined && schema.field1!==undefined) ? false :true,
{
message: 'your message'
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论