O que é Zod?
Zod é uma biblioteca para validação declarativa e parsing de dados, escrita em TypeScript. Ela permite descrever esquemas de dados (esquemas são descrições rigorosas de tipos) e verificar a conformidade de quaisquer objetos, strings, números, etc. A principal característica do Zod é a integração completa com TypeScript: com base no esquema, os tipos são inferidos automaticamente, eliminando a duplicação de definições.
Para que serve a validação de dados?
Em aplicações reais, os dados geralmente vêm de fontes externas (API, formulários, arquivos de configuração, localStorage). Sem validação, é fácil obter bugs, ataques XSS ou comportamentos inesperados. O Zod garante que os dados correspondam à estrutura esperada e lança erros claros se algo estiver errado.
Instalação
npm install zodA biblioteca não requer configurações adicionais e funciona tanto no Node.js quanto no navegador (com bundler).
Funções principais
- Criação de esquemas:
z.string(),z.number(),z.object(),z.array(), etc. - Parsing e validação: o método
.parse()retorna os dados ou lança um erro;.safeParse()retorna um objeto com os campos success/data/error. - Transformação:
.transform()permite modificar os dados após a verificação bem-sucedida. - Refine: verificações personalizadas com
.refine(). - Inferência de tipos:
z.infer<typeof schema>gera um tipo TypeScript.
Exemplo de código em TypeScript
import { z } from 'zod';
// Define um esquema para o usuárioconst UserSchema = z.object({ id: z.number().int().positive(), name: z.string().min(2).max(50), email: z.string().email(), age: z.number().min(18).max(120).optional(), role: z.enum(['admin', 'user', 'guest'])});
// Infere o tipo com base no esquematype User = z.infer<typeof UserSchema>;
// Usa safeParse para validação seguraconst rawData = { id: 1, name: 'Анна', email: 'anna@example.com', age: 25, role: 'admin'};
const result = UserSchema.safeParse(rawData);if (result.success) { console.log('Dados válidos:', result.data);} else { console.error('Erros:', result.error.errors);}Quando usar Zod
Zod é ideal para:
- Validação de dados de entrada de API (por exemplo, em Express ou Next.js).
- Verificação de dados de formulários no cliente e no servidor.
- Parsing de variáveis de ambiente (
dotenv+ Zod). - Trabalho com arquivos de configuração (JSON/YAML).
- Criação de tipos rigorosos para dados dinâmicos.
Graças ao suporte completo do TypeScript, o Zod torna o código mais seguro e legível, eliminando a dessincronização entre os tipos e os dados reais.
Também na biblioteca
Geolocalização e Mapas em PHP: Visão Geral de Bibliotecas e Ferramentas
ASIO para C++: guia completo com exemplos
Parsing de HTML em Node.js: visão geral das melhores bibliotecas e ferramentas
Trabalhando com arquivos ZIP em Rust: biblioteca zip e guia completo