Restrição avançada de tipos
Aprenda a usar protetores de tipos avançados e análise do fluxo de controle para lidar facilmente com condições complexas de tipos.
Restrição avançada de tipos é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 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 ao refinamento avançado de tipos
Introdução ao refinamento avançado de tipos
O refinamento avançado de tipos permite aperfeiçoar tipos complexos durante a execução usando técnicas avançadas, como proteções de tipo, análise do fluxo de controle e predicados personalizados.
Essas ferramentas tornam seu código TypeScript mais seguro e previsível.

O que é refinamento de tipos?
O que é refinamento de tipos?
O refinamento de tipos é o processo de transformar um tipo mais abrangente (por exemplo, string | number) em um tipo mais específico usando verificações durante a execução.
Usando typeof para refinar tipos
Usando typeof para refinar tipos
O operador typeof pode ser usado para refinar tipos primitivos:
function printValue(value: string | number): void {
if (typeof value === 'string') {
console.log(`String: ${value}`);
} else {
console.log(`Number: ${value}`);
}
}
printValue('Hello'); // String: Hello
printValue(42); // Number: 42Usando instanceof para refinar tipos
Usando instanceof para refinar tipos
O operador instanceof pode ser usado para refinar instâncias de classes:
class Dog {
bark() {
console.log('Woof!');
}
}
class Cat {
meow() {
console.log('Meow!');
}
}
function makeSound(animal: Dog | Cat): void {
if (animal instanceof Dog) {
animal.bark();
} else {
animal.meow();
}
}
makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!Usando proteções de tipo personalizadas
Usando proteções de tipo personalizadas
Você pode criar funções personalizadas de proteção de tipos para refiná-los com mais precisão:
type Fish = { swim: () => void };
type Bird = { fly: () => void };
declare const animal: Fish | Bird;
function isFish(animal: Fish | Bird): animal is Fish {
return (animal as Fish).swim !== undefined;
}
if (isFish(animal)) {
animal.swim();
} else {
animal.fly();Análise do fluxo de controle
Análise do fluxo de controle
A análise do fluxo de controle do TypeScript refina automaticamente os tipos com base no fluxo lógico do seu código:
function getLength(value: string | string[]): number {
if (Array.isArray(value)) {
return value.length;
} else {
return value.length;
}
}
console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3Benefícios do refinamento avançado de tipos
Benefícios do refinamento avançado de tipos
O refinamento avançado de tipos melhora seu código ao:
- Reduzir erros durante a execução.
- Tornar o código mais seguro e fácil de entender.
- Oferecer controle preciso sobre o tratamento de tipos.
Tarefa prática
Tarefa prática
Crie uma função que receba um parâmetro do tipo string | number e registre uma mensagem diferente para cada tipo. Use typeof para implementar a lógica.
Parabéns!
Parabéns!
Você aprendeu a usar técnicas avançadas de refinamento de tipos no TypeScript para aperfeiçoar e tratar tipos complexos com segurança e eficiência. Pratique essas técnicas para tornar seu código mais robusto e seguro quanto aos tipos!

Perguntas Frequentes
A aula “Restrição avançada de tipos” é grátis?
Sim — o texto completo de “Restrição avançada de tipos” é 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 “Restrição avançada de tipos”?
Aprenda a usar protetores de tipos avançados e análise do fluxo de controle para lidar facilmente com condições complexas de 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 1 de 3.
Quanto tempo leva a aula “Restrição avançada de tipos”?
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
- Restrição avançada de tipos
- Recursos avançados de classes
- Tipos condicionais