0Pricing
TypeScript Academy · Aula

Padrões práticos com uniões e interseções

Aplique uniões e interseções em situações do mundo real

Padrões práticos com uniões e interseções é 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.

Boas-vindas

Os tipos de união e interseção viabilizam muitos padrões reais de TypeScript. Esta lição explora combinações práticas que usará em código de produção.

Padrão de carga útil opcional

Modele funções ou eventos que podem ou não transportar dados usando uma união.
type Event =
  | { type: 'click'; x: number; y: number }
  | { type: 'keypress'; key: string }
  | { type: 'blur' };

Construtor/composição com interseção

Use interseções para compor conjuntos de funcionalidades em um tipo combinado.
type Serializable = { serialize(): string };
type Validatable = { validate(): boolean };
type Model = Serializable & Validatable & { id: number };

União para normalização de entradas

Aceite tipos de entrada flexíveis em uma função e normalize-os para um tipo canônico.
function toArray<T>(val: T | T[]): T[] {
  return Array.isArray(val) ? val : [val];
}

Tipos com marca usando interseção

Crie tipos distintos a partir do mesmo tipo primitivo usando interseções com um marcador de identificação exclusivo.
type UserId = number & { __brand: 'UserId' };
type PostId = number & { __brand: 'PostId' };
// Prevents accidentally mixing IDs

Padrão WithOptional

Use uma interseção com Partial para criar um tipo base no qual alguns campos são obrigatórios e outros são opcionais.
type RequiredFields = { id: number; email: string };
type OptionalFields = Partial<{ name: string; bio: string }>;
type UserUpdate = RequiredFields & OptionalFields;

Propriedades de componentes polimórficos

No React, os tipos de união permitem que as propriedades dos componentes variem com base em um discriminador.
type ButtonProps =
  | { variant: 'primary'; onClick: () => void }
  | { variant: 'link'; href: string };

Extensão de tipos de terceiros

Faça a interseção de tipos de terceiros com suas próprias adições.
import type { Request } from 'express';
type AuthRequest = Request & { user: User };

Combinação de união e interseção

Uniões e interseções podem ser combinadas. Os parênteses controlam a precedência.
type Admin = { role: 'admin' };
type User = { role: 'user' };
type LoggedIn = { sessionId: string };
type AuthUser = (Admin | User) & LoggedIn;

Proteções de tipo para membros de uniões

Escreva uma função de proteção de tipo reutilizável para refinar uma união sem repetir verificações.
function isAdmin(u: AuthUser): u is Admin & LoggedIn {
  return u.role === 'admin';
}

Comportamento distributivo em interseções

Lei distributiva: A & (B | C) = (A & B) | (A & C). TypeScript aplica isso automaticamente.
type Base = { id: number };
type AB = Base & (string | number);
// equivalent to: (Base & string) | (Base & number)

Verificação rápida

Qual padrão cria um tipo distinto a partir de `number` para impedir a mistura acidental de identificadores?

Recapitulação

Os tipos de união e interseção se combinam para modelar estruturas complexas do mundo real: identificadores com marca, comportamentos de composição, entradas flexíveis e propriedades de componentes discriminadas. Domine esses padrões para escrever TypeScript de nível profissional.

Perguntas Frequentes

A aula “Padrões práticos com uniões e interseções” é grátis?

Sim — o texto completo de “Padrões práticos com uniões e interseções” é 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 uniões e interseções”?

Aplique uniões e interseções em situações do mundo real 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 uniões e interseções”?

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. Tipos união: A ou B
  2. Tipos interseção: A e B
  3. Uniões discriminadas para correspondência segura de padrões
  4. Padrões práticos com uniões e interseções
← Voltar para TypeScript Academy