Tipos condicionais (introdução) e distribuição sobre uniões
Aprenda tipos condicionais (T extends U ? X : Y) e como eles são distribuídos sobre uniões para possibilitar uma lógica avançada no nível dos tipos.
Tipos condicionais (introdução) e distribuição sobre uniões é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 3. 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 3 aulas no total.
Introdução
Objetivo: usar tipos condicionais (T extends U ? X : Y) para ramificar no nível dos tipos e entender a distribuição sobre uniões para obter resultados precisos.
Condicional básico
Um tipo condicional retorna um de dois tipos, dependendo de a condição T extends U ser satisfeita.
type IsString<T> = T extends string ? true : false;
let a: IsString<string>; // true
let b: IsString<number>; // false
Distribuição
Com um parâmetro de tipo nu T, a condicional é executada em cada membro da união e, depois, os resultados são unidos.
type ToArray<T> = T extends any ? T[] : never;
type R1 = ToArray<string | number>; // string[] | number[]Interromper a distribuição
Envolva T em uma tupla, como [T], para interromper a distribuição e tratar a união como um todo.
type ToArrayNoDistrib<T> = [T] extends [any] ? T[] : never;
type R2 = ToArrayNoDistrib<string | number>; // (string | number)[]Exclude prático
Muitos tipos utilitários dependem da distribuição, como Exclude e Extract. Você pode criar facilmente suas próprias variantes.
type MyExclude<T, U> = T extends U ? never : T;
type R3 = MyExclude<"a" | "b" | "c", "b">; // "a" | "c"Dicas
Dicas:
- A distribuição ocorre somente com um parâmetro de tipo nu à esquerda de
extends. - Envolva-o em uma tupla para desativá-la.
- Faça testes com exemplos pequenos para confirmar sua compreensão.
Verificação da distribuição
Verificação rápida: por que os tipos condicionais são distribuídos sobre uniões?
Recapitulação
Recapitulação: use tipos condicionais para ramificar no nível dos tipos. Entenda quando os resultados se distribuem sobre uniões e como desativar esse comportamento envolvendo-os em uma tupla.
Perguntas Frequentes
A aula “Tipos condicionais (introdução) e distribuição sobre uniões” é grátis?
Sim — o texto completo de “Tipos condicionais (introdução) e distribuição sobre uniõ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 3 aulas no total.
O que vou aprender em “Tipos condicionais (introdução) e distribuição sobre uniões”?
Aprenda tipos condicionais (T extends U ? X : Y) e como eles são distribuídos sobre uniões para possibilitar uma lógica avançada no nível dos tipos. 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 3.
Quanto tempo leva a aula “Tipos condicionais (introdução) e distribuição sobre uniõ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
- Interfaces genéricas e aliases de tipos
- Tipos condicionais (introdução) e distribuição sobre uniões
- Padrões reutilizáveis para modelos de dados