I'm using zod
for validation. It seems like if I define a schema and then parse()
some input with some extra properties that aren't even in the schema, zod
parses the input as valid but just removes those keys.
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 }))
However, extra input properties is not something I'd like to ignore, instead I'd like to throw a useful error when that happens, reporting the keys of the extra properties.
Is there a way to do that with zod
?
CodePudding user response:
You can use the strict option:
const schema = z.object({
foo: z.string(),
bar: z.number()
}).strict();