Zod对象Schema自定义返回错误消息的问题求助
Zod对象Schema自定义返回错误消息的问题求助
我最近在使用Zod定义数据校验Schema时遇到了个小困惑,想请教下各位大佬:
我想要实现的校验逻辑是:
- 当传入的待校验值是数组时,返回我自定义的错误消息
- 如果传入的是数组以外的非对象类型(比如字符串、数字这类),则保留Zod默认的"expected object, received ..."错误提示
于是我写出了这样的Schema代码:
const mySchema = z.object( { key1: z.string().nonempty(), key2: z.record(z.unknown()).optional(), key3: z.string().optional(), }, { error: (iss) => (Array.isArray(iss.input) ? 'custom message' : undefined) } ).strict();
但实际测试的时候,当我用safeParse去校验一个数组变量时,返回的错误却是Zod默认的"expected object, received array",完全没触发我写的自定义错误逻辑。我翻来覆去检查了好几遍代码,还是没搞懂问题出在哪,有没有懂行的朋友能帮忙指点一下呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

