Zod Section 10 exercises
solution

Make Schemas Optional

The solution is really intuitive in this case!

By adding .optional() on to the end of our phoneNumber schema, our test will pass:

const Form = z.object({ name: z.string(), phoneNumber: z.string().optional(), });

What we are saying here is that name is a string, and phoneNumber is either

Loading solution

Transcript

Matt Pocock: 0:00 Luckily, Zod makes this really, really intuitive with .optional here. Now you can see inside the test that it is all working. What we end up with is a type that looks like...If we go type FormType = z.infer typeof Form, then what we get is name is now a string, but phoneNumber is now a string or undefined. You don't have to parse it, which is really, really nice. That's just a really simple addition you can add if you need a property to be optional.