Libreria Gratis Activo

Zod

Para validar datos no fiables (formularios, APIs, env) y derivar los tipos de TypeScript del mismo esquema

Validación de esquemas en TypeScript con inferencia automática de tipos y cero dependencias

Notas y contexto

Qué es

Zod es una librería de validación de esquemas para TypeScript creada por Colin McDonnell. Defines un esquema una sola vez y, a partir de él, Zod valida datos en tiempo de ejecución e infiere automáticamente el tipo estático correspondiente, evitando duplicar la definición. No tiene dependencias externas, funciona en Node.js y navegadores, y su núcleo pesa unos 2 kB comprimidos. Su versión 4 ya es estable.

Para qué sirve

  • Validar datos no fiables: cuerpos de peticiones, respuestas de APIs, variables de entorno o parámetros de URL.
  • Generar tipos de TypeScript a partir del esquema con z.infer, sin mantener una interfaz aparte.
  • Validar formularios, integrándose con librerías como React Hook Form.
  • Transformar y normalizar datos durante el parseo (coerción, valores por defecto, refinamientos).

Cuándo usarlo

Es la opción de referencia cuando trabajas con TypeScript y necesitas que validación y tipado compartan una única fuente de verdad. Encaja en backends (validar entrada de API), frontends (formularios) y configuración. Si el tamaño del bundle es crítico, valora Valibot, una alternativa más ligera con API modular basada en funciones; Zod también ofrece Zod Mini para reducir peso.

Ejemplo

Instalación y uso básico:

npm install zod
import { z } from 'zod';

const Usuario = z.object({
  nombre: z.string().min(1),
  email: z.string().email(),
  edad: z.number().int().positive().optional(),
});

// Tipo inferido a partir del esquema
type Usuario = z.infer<typeof Usuario>;

// Validación que lanza error si falla
const datos = Usuario.parse(entrada);

// Validación segura sin excepciones
const resultado = Usuario.safeParse(entrada);
if (!resultado.success) {
  console.error(resultado.error.issues);
}

Puntos clave

  • Inferencia de tipos estática con z.infer: el esquema es la única fuente de verdad.
  • Cero dependencias y núcleo de unos 2 kB comprimidos.
  • API encadenable e inmutable, con safeParse para manejar errores sin try/catch.
  • Soporta refinamientos y transformaciones, incluso asíncronos, y conversión a JSON Schema.

Ten en cuenta

Proyecto activo y muy mantenido, con licencia MIT y Zod 4 ya estable. La migración de Zod 3 a 4 introduce cambios; revisa la guía oficial antes de actualizar. La validación ocurre en tiempo de ejecución, así que añade un coste de procesamiento en rutas muy calientes. Si priorizas un bundle mínimo, considera Valibot o el subpaquete Zod Mini.

Volver al directorio
Volver al directorio