initial commit: slides + practica_resueltos + README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
---
|
||||
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>
|
||||
Reference in New Issue
Block a user