Хабр Курсы для фронтендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

email: z.string().email(),Такой вариант в новой версии zod уже помечен как устаревший, так что в статье наверное лучше об этом указать или исправить.
Спасибо за комментарий!
Да, такой формат рабочий, но устарел и лучше использовать email: z.email() для проверки почты.
Если же нам нужно сначала получить ошибку пустого поля, а потом некорректности email, то можно использовать такую конструкцию:email: z.string().nonempty("Поле обязательно").check(z.email("Некорректный email"))
Внес правки в статью.
Структура против хаоса — практическая валидация форм с помощью Zod