0Pricing
TypeScript Academy · Aula

Configuração Validada por Esquema

Valide a configuração na inicialização com um esquema.

Configuração Validada por Esquema é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Valide a configuração na inicialização

Os auxiliares de análise manual funcionam, mas um esquema declara toda a estrutura e as regras em um único local e valida tudo na inicialização, falhando rapidamente antes que o aplicativo atenda às solicitações.

O que significa falhar rapidamente

Falhar rapidamente significa que o processo é encerrado imediatamente com uma mensagem clara quando a configuração está incorreta, em vez de falhar mais tarde em um trecho obscuro do código durante uma solicitação.

Um esquema com zod

Bibliotecas como zod permitem descrever a configuração de forma declarativa. Cada campo informa seu tipo e suas restrições; a validação produz um objeto totalmente tipado.

import { z } from "zod";
const EnvSchema = z.object({
  PORT: z.coerce.number().int().positive(),
  NODE_ENV: z.enum(["development", "production"]),
  DATABASE_URL: z.string().url(),
});

Coerção integrada

Os esquemas podem converter textos para os tipos corretos. z.coerce.number() transforma "8081" em 8081, para que textos brutos do ambiente se tornem números reais com segurança.

// "8081" -> 8081 via z.coerce.number()

Analisando e falhando rapidamente

Chamar parse valida tudo. Se algo for inválido, o zod lança um erro detalhado que você pode registrar e usar para encerrar o processo, interrompendo a inicialização imediatamente.

function loadConfig() {
  const result = EnvSchema.safeParse(process.env);
  if (!result.success) {
    console.error(result.error.format());
    process.exit(1);
  }
  return result.data;
}

Inferindo o tipo

Um grande benefício: o tipo validado é derivado do esquema com z.infer. O esquema é a única fonte de verdade tanto para as verificações em tempo de execução quanto para os tipos em tempo de compilação.

type Env = z.infer<typeof EnvSchema>;
// { PORT: number; NODE_ENV: "development" | "production"; DATABASE_URL: string }

Erros descritivos

Os validadores de esquema informam exatamente qual campo falhou e por quê, por exemplo: "PORT: número positivo esperado". Mensagens claras tornam simples diagnosticar configurações incorretas.

// e.g. { PORT: { _errors: ["Expected number, received nan"] } }

Campos opcionais e padrão

Os esquemas expressam diretamente a opcionalidade e os valores padrão, eliminando a lógica de alternativas escrita manualmente e mantendo todas as regras em uma única declaração.

const Schema = z.object({
  LOG_LEVEL: z.enum(["info", "debug"]).default("info"),
  TIMEOUT_MS: z.coerce.number().optional(),
});

Valide uma vez, use em todo lugar

Execute a validação uma única vez na inicialização e exporte o objeto tipado resultante. O código posterior pode confiar que a configuração está presente e bem-formada.

export const config = loadConfig();

Além de env: arquivos e argumentos

O mesmo esquema pode validar configurações de um arquivo JSON ou de fontes mescladas, não apenas de process.env. A etapa de validação é independente da origem dos valores.

Por que os esquemas são melhores que verificações improvisadas

Um esquema unifica validação e tipagem, produz erros detalhados e consistentes, oferece coerção e valores padrão, e falha rapidamente, substituindo verificações if manuais e dispersas por uma única declaração.

Verificação rápida

Verificação rápida desta lição.

Recapitulação

Um esquema de configuração (por exemplo, zod) declara tipos, restrições, coerção e valores padrão em um único local, valida na inicialização para falhar rapidamente com erros descritivos e permite inferir a configuração tipada com z.infer a partir dessa única fonte de verdade.

Perguntas Frequentes

A aula “Configuração Validada por Esquema” é grátis?

Sim — o texto completo de “Configuração Validada por Esquema” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Configuração Validada por Esquema”?

Valide a configuração na inicialização com um esquema. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Configuração Validada por Esquema”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Definindo Tipos de Variáveis de Ambiente
  2. Configuração Validada por Esquema
  3. Camadas e Valores Padrão de Configuração
  4. Segredos e Segurança de Tipos
← Voltar para TypeScript Academy