0Pricing
TypeScript Academy · Aula

Tipos união: A ou B

Utilize | para permitir várias possibilidades de tipo

Tipos união: A ou B é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 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 permitem que um valor seja de um entre vários tipos. Eles são escritos com o operador `|` e são fundamentais para modelar dados do mundo real.

Sintaxe básica de união

Combine dois ou mais tipos com `|`. Uma variável com um tipo de união pode conter qualquer um dos tipos listados.
let id: string | number;
id = 'abc123'; // OK
id = 42;       // OK
// id = true;  // Error

União em parâmetros de funções

Aceite vários tipos de entrada em uma função usando um tipo de parâmetro de união.
function format(val: string | number): string {
  return typeof val === 'string' ? val.toUpperCase() : val.toFixed(2);
}

Refinamento necessário para membros de uma união

Só pode chamar métodos comuns a todos os membros da união sem refinamento. Para usar métodos específicos de um tipo, primeiro é necessário refiná-lo.
function process(val: string | number) {
  // val.toFixed(2); // Error — not on string
  if (typeof val === 'number') {
    val.toFixed(2); // OK
  }
}

União com tipos literais

Tipos de união formados por valores literais criam um conjunto de valores de cadeia de caracteres ou números permitidos, semelhante a uma enumeração.
type Direction = 'north' | 'south' | 'east' | 'west';
type StatusCode = 200 | 201 | 400 | 404 | 500;

União para tipos anuláveis

A união mais comum é `T | null` ou `T | undefined` para representar valores opcionais quando strictNullChecks está ativado.
function getUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

União de tipos de objeto

Os tipos de união podem combinar tipos de objeto. TypeScript só permite acessar propriedades comuns a todos os membros sem refinamento.
type Cat = { kind: 'cat'; meow(): void };
type Dog = { kind: 'dog'; bark(): void };
type Pet = Cat | Dog;
function speak(pet: Pet) {
  if (pet.kind === 'cat') pet.meow();
  else pet.bark();
}

Três ou mais tipos em uma união

Os tipos de união podem incluir quantos tipos forem necessários.
type Input = string | number | boolean | null;

União nos tipos de retorno

As funções podem retornar tipos diferentes dependendo da sua lógica. Expresse isso com um tipo de retorno de união.
function divide(a: number, b: number): number | null {
  if (b === 0) return null;
  return a / b;
}

Uniões discriminadas

Adicione uma propriedade literal compartilhada (um discriminador) aos membros da união. TypeScript usa essa propriedade para refinar o tipo automaticamente.
type Square = { kind: 'square'; side: number };
type Circle = { kind: 'circle'; radius: number };
type Shape = Square | Circle;

Propriedades comuns sem refinamento

Se todos os membros da união compartilharem uma propriedade, poderá acessá-la sem refinamento.
type A = { name: string; x: number };
type B = { name: string; y: number };
type AB = A | B;
function getName(obj: AB): string {
  return obj.name; // OK — name is on both
}

Verificação rápida

Qual sintaxe cria um tipo de união que pode ser uma cadeia de caracteres ou um número?

Recapitulação

Os tipos de união (`|`) permitem valores de vários tipos. Refine as uniões antes de usar operações específicas de um tipo. Os tipos de união literal restringem os valores a um conjunto finito. As uniões discriminadas adicionam uma etiqueta compartilhada para facilitar o refinamento.

Perguntas Frequentes

A aula “Tipos união: A ou B” é grátis?

Sim — o texto completo de “Tipos união: A ou B” é 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 “Tipos união: A ou B”?

Utilize | para permitir várias possibilidades de tipo 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 1 de 4.

Quanto tempo leva a aula “Tipos união: A ou B”?

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