Usando z.infer para inferir tipos TypeScript a partir de esquemas Zod
Além de fornecer validação de dados em tempo de execução, o Zod também pode ser usado para inferir tipos TypeScript diretamente a partir de schemas Zod. Isso ajuda a manter uma única fonte de verdade para a validação e a tipagem, eliminando a necessidade de duplicar definições de tipos.
O método z.infer
permite derivar automaticamente um tipo TypeScript a partir de um schema Zod. Isso é especialmente útil para evitar a necessidade de definir manualmente os tipos TypeScript separados dos schemas de validação.
Exemplo 2: Inferindo tipos a partir de um schema Zod
Explicação
- Schema e tipo: Aqui, o
userSchema
define a estrutura do dado, e oz.infer<typeof userSchema>
cria automaticamente um tipo TypeScript chamadoUser
, que reflete essa estrutura. - Manutenção simplificada: Ao usar
z.infer
, você garante que o tipo TypeScript será sempre consistente com o schema de validação do Zod. Se o schema for alterado, o tipo será atualizado automaticamente.
Exemplo 3: Uso de inferência em uma função
Aqui, usamos o tipo inferido diretamente como o tipo do argumento da função, garantindo que os dados passados para createUser
sempre sigam a estrutura definida no schema.
Conclusão
O Zod é uma ferramenta poderosa que complementa o TypeScript fornecendo validação em tempo de execução para garantir a integridade dos dados em cenários onde o TypeScript não pode atuar. Além disso, com z.infer
, é possível unificar a definição de tipos e validação, evitando inconsistências e facilitando a manutenção do código. Isso ajuda a criar aplicações mais seguras e robustas.