---
layout: default
---

# Ejemplo de Zod

<div class="text-sm mt-8">

```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<typeof UserSchema>;

// 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
```

</div>
