Основные принципы использования¶
На этой странице вы найдете основные сведения о создании схем, анализе данных и использовании выведенных типов. Полную документацию по API схем Zod см. в разделе Определение схем.
Определение схемы¶
Прежде чем приступить к каким-либо действиям, необходимо определить схему. В целях данного руководства мы будем использовать простую схему объекта.
1 2 3 4 5 6 | |
Анализ данных¶
Для любой схемы Zod используйте .parse для проверки входных данных. Если они действительны, Zod возвращает строго типизированный глубокий клон входных данных.
1 2 | |
Если ваша схема использует определенные асинхронные API, такие как async уточнения или трансформации, вам необходимо использовать метод .parseAsync().
1 | |
Обработка ошибок¶
При сбое валидации метод .parse() выдает экземпляр ZodError с подробной информацией о проблемах валидации.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Чтобы избежать использования блока try/catch, можно использовать метод .safeParse(), который возвращает простой объект результата, содержащий либо успешно проанализированные данные, либо ZodError. Тип результата является дискриминированным объединением, поэтому вы можете удобно обрабатывать оба случая.
1 2 3 4 5 6 7 8 9 | |
Если ваша схема использует определенные асинхронные API, такие как async уточнения или преобразования, вам необходимо использовать метод .safeParseAsync().
1 | |
Вывод типов¶
Zod выводит статический тип из определений вашей схемы. Вы можете извлечь этот тип с помощью утилиты z.infer<> и использовать его по своему усмотрению.
1 2 3 4 5 6 7 8 9 10 | |
В некоторых случаях типы ввода и вывода схемы могут различаться. Например, API .transform() может преобразовывать ввод из одного типа в другой. В таких случаях вы можете извлекать типы ввода и вывода независимо друг от друга:
1 2 3 4 5 6 7 | |
Теперь, когда мы рассмотрели основы, давайте перейдем к Schema API.