0Pricing
TypeScript Academy · Aula

Padrões Práticos com satisfies

Aplique satisfies a objetos de configuração e tabelas de consulta.

Padrões Práticos com satisfies é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 4 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.

Validando uma Paleta de Cores

Um padrão comum para uma paleta é satisfies Record<string, Color>: cada valor é verificado para garantir que seja uma cor válida, enquanto as chaves permanecem exatas para o preenchimento automático.

type Color = "red" | "green" | "blue";
const palette = {
  primary: "blue",
  secondary: "green"
} satisfies Record<string, Color>;
console.log(palette.primary);

Detectando Valores Inválidos na Paleta

Se um valor não for um Color válido, satisfies gera um erro, enquanto as chaves continuam tipadas com precisão.

type Color = "red" | "green" | "blue";
// const bad = { primary: "purple" } satisfies Record<string, Color>; // Error
const ok = { primary: "red" } satisfies Record<string, Color>;
console.log(ok.primary);

Mantendo o Preenchimento Automático das Chaves

Como as chaves inferidas são "primary" | "secondary", o editor oferece preenchimento automático para elas, ao contrário de uma anotação Record simples, que perderia as chaves específicas.

type Color = "red" | "green" | "blue";
const palette = { primary: "red", accent: "blue" } satisfies Record<string, Color>;
// palette.<autocomplete: primary, accent>
console.log(palette.accent);

Validando um Mapa de Rotas

Os mapas de rotas também se beneficiam: os valores precisam corresponder à estrutura de um manipulador, enquanto os nomes das rotas permanecem conhecidos para os auxiliares de navegação.

type Route = { method: "GET" | "POST"; path: string };
const routes = {
  home: { method: "GET", path: "/" },
  login: { method: "POST", path: "/login" }
} satisfies Record<string, Route>;
console.log(routes.login.method);

Indexando o Mapa

Com as chaves preservadas, você pode criar um tipo de nomes de rotas válidos e indexar o tipo do mapa com segurança de tipos.

type Route = { method: string; path: string };
const routes = {
  home: { method: "GET", path: "/" },
  about: { method: "GET", path: "/about" }
} satisfies Record<string, Route>;
type RouteName = keyof typeof routes; // "home" | "about"
const pick: RouteName = "about";
console.log(routes[pick].path);

Config Tipado com Valores Variados

satisfies também funciona quando os valores têm estruturas diferentes. Restrinja-os com um tipo de união, e cada valor será validado em relação a ele.

type Setting = number | boolean | string;
const config = {
  retries: 3,
  verbose: true,
  region: "eu"
} satisfies Record<string, Setting>;
console.log(config.retries, config.verbose);

Tabelas de Consulta Semelhantes a Enumerações

Crie uma tabela de consulta validada em relação a um tipo de valor, mantendo cada entrada exata para uso posterior.

type Status = "active" | "inactive";
const userStatus = {
  alice: "active",
  bob: "inactive"
} satisfies Record<string, Status>;
const s: "active" = userStatus.alice;
console.log(s);

Combinando com as const

Combine as const e satisfies para obter dados profundamente imutáveis e validados: as const os congela, e satisfies os verifica.

type Color = "red" | "blue";
const theme = {
  primary: "red",
  secondary: "blue"
} as const satisfies Record<string, Color>;
console.log(theme.primary);

Validando Intervalos Numéricos por Tipo

Você pode restringir valores a uma união de literais numéricos para modelar conjuntos fixos de opções, validados no momento da definição.

type Level = 1 | 2 | 3;
const levels = {
  easy: 1,
  medium: 2,
  hard: 3
} satisfies Record<string, Level>;
console.log(levels.hard);

Um Mapa de Sinalizadores de Funcionalidade

Um config prático de sinalizadores de funcionalidade: as chaves são nomes de sinalizadores com preenchimento automático, e os valores são booleanos validados por satisfies.

const flags = {
  newDashboard: true,
  betaSearch: false
} satisfies Record<string, boolean>;
type Flag = keyof typeof flags;
const f: Flag = "betaSearch";
console.log(flags[f]);

Por Que Esse Padrão Vence

Entre paletas, rotas e sinalizadores, satisfies Record<...> oferece valores validados, além de chaves e literais precisos: o ponto ideal do dia a dia para configurações tipadas.

type Color = "red" | "green" | "blue";
const ui = { brand: "green", warn: "red" } satisfies Record<string, Color>;
console.log(Object.keys(ui).join(","));

Verificação Rápida: satisfies na Prática

Teste sua compreensão dos padrões práticos de satisfies.

Recapitulação: Padrões Práticos de satisfies

Você aplicou satisfies Record<string, Color> a paletas, mapas de rotas, sinalizadores e tabelas de consulta, mantendo chaves e literais exatos para o preenchimento automático enquanto valida cada valor.

type Color = "red" | "blue";
const theme = { bg: "blue", fg: "red" } satisfies Record<string, Color>;
console.log(theme.bg, theme.fg);

Perguntas Frequentes

A aula “Padrões Práticos com satisfies” é grátis?

Sim — o texto completo de “Padrões Práticos com satisfies” é 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 “Padrões Práticos com satisfies”?

Aplique satisfies a objetos de configuração e tabelas de consulta. 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 4 de 4.

Quanto tempo leva a aula “Padrões Práticos com satisfies”?

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. Por que satisfies Existe
  2. satisfies versus Anotação de Tipo
  3. satisfies versus Asserção as
  4. Padrões Práticos com satisfies
← Voltar para TypeScript Academy