0Pricing
TypeScript Academy · Aula

Tipos interseção: A e B

Combine tipos com & para mesclar suas propriedades

Tipos interseção: A e B é 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.

Boas-vindas

Os tipos de interseção combinam vários tipos em um só. Um valor de um tipo de interseção deve satisfazer ALL os tipos combinados simultaneamente.

Sintaxe básica de interseção

Use o operador `&` para criar uma interseção. O resultado tem todas as propriedades dos dois tipos.
type Named = { name: string };
type Aged = { age: number };
type Person = Named & Aged;
const alice: Person = { name: 'Alice', age: 30 };

Todas as propriedades são obrigatórias

Uma interseção exige ALL as propriedades de todos os tipos combinados. A ausência de qualquer propriedade gera um erro de tipo.
type A = { x: number };
type B = { y: number };
type AB = A & B;
// const p: AB = { x: 1 }; // Error — missing y

Combinação de tipos de objeto

As interseções costumam ser usadas para combinar dois tipos de objeto que não estendem um ao outro.
type Serializable = { serialize(): string };
type Loggable = { log(): void };
type Service = Serializable & Loggable;

Interseção versus extensão

A extensão de uma interface e a interseção produzem resultados semelhantes para tipos de objeto, mas a interseção funciona com aliases de tipo, incluindo uniões e tipos primitivos.
// Interface extend:
interface C extends A, B {}

// Intersection type:
type D = A & B;
// Both give the same shape for simple objects

Interseção com tipos conflitantes

Se dois tipos intersectados tiverem a mesma propriedade com tipos conflitantes, o resultado será `never` para essa propriedade.
type X = { id: string };
type Y = { id: number };
type XY = X & Y;
// XY.id is string & number = never — impossible!

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

Aceite um argumento que deve satisfazer vários contratos de interface usando uma interseção.
function process(item: Serializable & Loggable): void {
  item.log();
  console.log(item.serialize());
}

Padrão de composição com interseções

As interseções permitem o padrão de composição: combinar comportamentos de várias fontes.
type Timestamped<T> = T & { createdAt: Date };
type User = Timestamped<{ name: string; email: string }>;

Interseções de tipos primitivos se reduzem a never

A interseção de tipos primitivos que não podem se sobrepor se reduz a `never`.
type T = string & number; // never — a value can't be both

Interseção versus união: a diferença fundamental

União (`|`) significa OR: o valor pode ser qualquer um dos tipos. Interseção (`&`) significa AND: o valor deve satisfazer todos os tipos.

Uso de interseções com tipos genéricos

Combine um tipo genérico com propriedades adicionais usando uma interseção para criar tipos flexíveis e extensíveis.
type WithId<T> = T & { id: number };
const user: WithId<{ name: string }> = { id: 1, name: 'Alice' };

Verificação rápida

A que `type T = string & number` é avaliado?

Recapitulação

Os tipos de interseção (`&`) exigem ALL as propriedades de todos os tipos combinados. Use-os para combinar estruturas de objetos, implementar composições e combinar tipos genéricos. Interseções conflitantes de tipos primitivos se reduzem a never.

Perguntas Frequentes

A aula “Tipos interseção: A e B” é grátis?

Sim — o texto completo de “Tipos interseção: A e 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 interseção: A e B”?

Combine tipos com & para mesclar suas propriedades 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 “Tipos interseção: A e 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