Основные принципы использования¶
На этой странице вы найдете основные сведения о создании схем, анализе данных и использовании выведенных типов. Полную документацию по 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.