Pull to refresh

Comments 7

Классная библиотека! Вижу тенденцию перехода именно на Zod сейчас везде, хотя раньше более популярна была Yup и другие в таком же стиле.


Так же к статье можно добавить, что Zod прекрасно работает как на фронте так и на бэке в Next.js например, и прекрасно интегрируется с ReactHookForm. Комбинация всех составляющих позволяет фигачить любые формы с проверками входных данных просто как нефиг делать.

Даю рецепт:
1. Берешь в Next.js клиентском компоненте делаешь форму на React Hook Form.
2. Делаешь схему Zod и вывод типа из нее.

3. Подключаешь в RHF Zod в качестве валидатора.
4. Отправляешь форму через server action на сервер одной строчкой кода.
5. На бэке, используя ту же схему Zod, проверяешь данные формы и сохраняешь в базу.

  • электронная почта — формат something@domain.zone;

  • пароль — не менее 8 символов, содержит минимум одну цифру, одну заглавную и одну строчную букву

Уж сколько раз твердили миру...

interface User {

name: string;
age: number;
email: Email;
password: Password;
}


Подскажите, а каким образом вы из формы (input) получили вот такой объект с указанными типами?

<input type="number"> // вам он тут вернул тип Number в input.value?

Печаль в том, что все вышесказанное относится только к новым проектам. Если брать практически любой существующий, то окажется, что в базе уже лежит N тысяч невалидных данных, которые всё-таки нужно показывать пользователю (в надежде, что он их распознает). И тогда все эти истории с типизированными классами идут лесом... а жаль.

Если в форме меньше сотни полей ввода, то не всё ли равно, какая из библиотек валидации быстрее? Милисекундой больше, милисекундой меньше.

Актуально для валидации ответа сервера.

Sign up to leave a comment.