Uso básico
Esta página te guiará a través de los conceptos básicos de la creación de esquemas, el análisis de datos y el uso de tipos inferidos. Para obtener documentación completa sobre la API de esquemas de Zod, consulta Definición de esquemas.
Definición de un esquema
Antes de poder hacer cualquier otra cosa, necesitas definir un esquema. Para los propósitos de esta guía, usaremos un esquema de objeto simple.
Análisis de datos
Dado cualquier esquema Zod, usa .parse para validar una entrada. Si es válida, Zod devuelve un clon profundo fuertemente tipado de la entrada.
Nota — Si tu esquema usa ciertas APIs asíncronas como async refinements (refinamientos) o transforms (transformaciones), necesitarás usar el método .parseAsync() en su lugar.
Manejo de errores
Cuando la validación falla, el método .parse() lanzará una instancia de ZodError con información detallada sobre los problemas de validación.
Para evitar un bloque try/catch, puedes usar el método .safeParse() para obtener un objeto de resultado plano que contenga los datos analizados con éxito o un ZodError. El tipo de resultado es una unión discriminada, por lo que puedes manejar ambos casos convenientemente.
Nota — Si tu esquema usa ciertas APIs asíncronas como async refinements (refinamientos) o transforms (transformaciones), necesitarás usar el método .safeParseAsync() en su lugar.
Inferencia de tipos
Zod infiere un tipo estático de tus definiciones de esquema. Puedes extraer este tipo con la utilidad z.infer<> y usarlo como quieras.
En algunos casos, los tipos de entrada y salida de un esquema pueden divergir. Por ejemplo, la API .transform() puede convertir la entrada de un tipo a otro. En estos casos, puedes extraer los tipos de entrada y salida de forma independiente:
Ahora que hemos cubierto los conceptos básicos, saltemos a la API de esquemas.

