DUMB DEV Community

Nathana Facion
Nathana Facion

Posted on

🚀 Zod vs. Yup: O Fim da Duplicação de Tipos em TypeScript

Se você trabalha com validação de dados em projetos modernos, a pergunta é inevitável: por que migrar do estabelecido Yup para o crescente Zod?
A resposta é simples e poderosa: Inferência de Tipos Automática (TypeScript-First).

💡 A Vantagem do Zod
Zod foi construído do zero para ser um cidadão de primeira classe no TypeScript. Enquanto com Yup você precisa declarar o esquema e definir a interface do tipo separadamente (abrindo margem para erros de sincronia), Zod infere o tipo estático diretamente do esquema de validação, garantindo que a validação em runtime e a tipagem em compile-time estejam sempre alinhadas.

Exemplo:

// ❌ Com Yup: Tipagem duplicada
interface User { name: string; }
const userSchemaYup = yup.object({ name: yup.string().required(), });

// ✅ Com Zod: O tipo é inferido automaticamente
const userSchemaZod = z.object({ name: z.string().min(3), });

// O tipo User abaixo é gerado pelo Zod!
type User = z.infer<typeof userSchemaZod>; // type User = { name: string; }

Top comments (0)