我想在 Zod 元组上返回自定义消息。我没有找到任何方法可以做到这一点。
返回信息:数组必须至少包含4个元素
代码:
z.tuple([
z.enum(),
z.number(),
z.string(),
z.array(),
],
{ message: "Needs to be an array." })
//.refine, .min, .length will not work here
我尝试过的
您可以使用 params 中的
errorMap
属性自定义错误消息。请阅读文档此处。
以下是您的代码的操作方法:
z.tuple([
z.enum(),
z.number(),
z.string(),
z.array(),
], {
errorMap: (issue, ctx) => {
// for too_small
if (issue.code === z.ZodIssueCode.too_small) {
return { message: "Missing values in tuple" };
}
// default message for other errors
return { message: ctx.defaultError };
}
})