Tipos condicionais: T extends U ? X : Y
Escreva instruções if no nível dos tipos com tipos condicionais
Tipos condicionais: T extends U ? X : Y é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 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
Sintaxe básica
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // true
type B = IsString<number>; // falseNonNullable integrado
type NonNullable<T> = T extends null | undefined ? never : T;
type C = NonNullable<string | null>; // stringCondicionais com genéricos
type Flatten<T> = T extends Array<infer I> ? I : T;
type Str = Flatten<string[]>; // string
type Num = Flatten<number>; // numberCondicionais aninhados
type TypeName<T> =
T extends string ? 'string' :
T extends number ? 'number' :
T extends boolean ? 'boolean' :
'object';Distribuição sobre uniões
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]Impedindo a distribuição
type NoDistribute<T> = [T] extends [any] ? T[] : never;
type R2 = NoDistribute<string | number>; // (string | number)[]Usando never para filtrar
type OnlyStrings<T> = T extends string ? T : never;
type S = OnlyStrings<'a' | 'b' | 1 | 2>; // 'a' | 'b'Tipos condicionais em tipos mapeados
type NullableValues<T> = { [K in keyof T]: T[K] extends string ? null : T[K] };Inferindo a partir de parâmetros de função
type FirstParam<T> = T extends (first: infer P, ...rest: any[]) => any ? P : never;
type FP = FirstParam<(a: string, b: number) => void>; // stringUtilitários condicionais integrados
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;Verificação rápida
Recapitulação
Perguntas Frequentes
A aula “Tipos condicionais: T extends U ? X : Y” é grátis?
Sim — o texto completo de “Tipos condicionais: T extends U ? X : Y” é 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 condicionais: T extends U ? X : Y”?
Escreva instruções if no nível dos tipos com tipos condicionais 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 3 de 4.
Quanto tempo leva a aula “Tipos condicionais: T extends U ? X : Y”?
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
- keyof e tipos de acesso indexado
- Restrições genéricas: restringindo parâmetros de tipo
- Tipos condicionais: T extends U ? X : Y
- Tipos condicionais distributivos