不允许使用 zod parse 的额外属性
Do not allow extra properties with zod parse
我正在使用 zod
进行验证。似乎如果我定义一个架构,然后 parse()
一些带有一些甚至不在架构中的额外属性的输入,zod
将输入解析为有效但只是删除那些键。
import { z } from 'zod'
const schema = z.object({
foo: z.string(),
bar: z.number()
})
// this validates fine, printing { foo: 'hello', bar: 1 }
console.log(schema.parse({ foo: 'hello', bar: 1, baz: true }))
但是,我不想忽略额外的输入属性,相反,我想在发生这种情况时抛出一个有用的错误,报告额外属性的键。
有没有办法用 zod
做到这一点?
您可以使用 strict option:
const schema = z.object({
foo: z.string(),
bar: z.number()
}).strict();
我正在使用 zod
进行验证。似乎如果我定义一个架构,然后 parse()
一些带有一些甚至不在架构中的额外属性的输入,zod
将输入解析为有效但只是删除那些键。
import { z } from 'zod'
const schema = z.object({
foo: z.string(),
bar: z.number()
})
// this validates fine, printing { foo: 'hello', bar: 1 }
console.log(schema.parse({ foo: 'hello', bar: 1, baz: true }))
但是,我不想忽略额外的输入属性,相反,我想在发生这种情况时抛出一个有用的错误,报告额外属性的键。
有没有办法用 zod
做到这一点?
您可以使用 strict option:
const schema = z.object({
foo: z.string(),
bar: z.number()
}).strict();