---
layout: default
---
# Ejemplo de Zod
```typescript
import { z } from "zod";
// Definir el esquema de datos
const UserSchema = z.object({
name: z.string(),
age: z.number().min(0).max(120),
email: z.string().email(),
roles: z.array(z.enum(["admin", "user", "guest"])),
});
// Inferir el tipo TypeScript automáticamente
type User = z.infer;
// Validar datos
const result = UserSchema.parse({
name: "Juan",
age: 30,
email: "juan@example.com",
roles: ["admin", "user"]
});
// ✅ Si los datos son válidos, devuelve el objeto tipado
// ❌ Si no, lanza un error con detalles del problema
```