Validacion con Zod
Los tipos no validan en runtime. Zod te da schemas para validar inputs (API/forms) y tipos derivados para TS.
Conceptos clave
- Schema -> parse/safeParse
- Inferir tipos: z.infer
- Errores claros para el cliente
Ejemplo
import { z } from 'zod';
const SignupSchema = z.object({
email: z.string().email(),
password: z.string().min(8),
});
type SignupInput = z.infer<typeof SignupSchema>;
const parsed = SignupSchema.safeParse({ email: '[email protected]', password: '12345678' });
if (!parsed.success) console.log(parsed.error.flatten());
Ejercicio
- Crea un schema para crear un curso (title, description, level).
- Usa safeParse y devuelve errores amigables.
Checklist de mastery
- Entiendo que TS no valida en runtime.
- Puedo usar safeParse sin tirar excepciones.