← todos los posts
PATTERN08 jul 2026·1 min de lectura

Zod como fuente única del contrato: parse, no validate

Durante mucho tiempo mantenía tres versiones del mismo contrato: la interfaz TypeScript, el validador del request y el DTO que consumía el front. Cada cambio de campo era una caza del tesoro — y el drift entre ellos era la causa nº 1 de bugs tontos en producción.

schemas/user.ts
undefined

El giro clave es tratar el schema como la fuente única: el tipo se infiere de él, nunca se escribe a mano. Y en el handler, parse — no validate. Parse devuelve un valor nuevo, tipado y limpio; validar y seguir usando el objeto original deja pasar campos extra y coerción silenciosa.

routes/users.ts
undefined

Bonus: publica los schemas en un paquete compartido y el front valida formularios con exactamente el mismo contrato — React Hook Form + zodResolver cierran el ciclo.

← volver al blogBernardo Filipe · 08 jul 2026