Home > Blockchain >  Do not allow extra properties with zod parse
Do not allow extra properties with zod parse

Time:12-20

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();
  • Related