useWatch values:
name: null (type: string | null | undefined)
email: null
age: null
Schema verbosity comparison:
This approach:
name: z.string().nullish()
.transform((val, ctx) => {
if (!val) {
ctx.addIssue({...});
return '';
}
return val;
})Package approach:
name: z.string().min(1)