0Pricing
TypeScript Academy · Aula

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.

Restrição avançada de tipos — ilustração 1

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: 42

Usando 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'])); // 3

Benefí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!

Restrição avançada de tipos — ilustração 10

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

  1. Restrição avançada de tipos
  2. Recursos avançados de classes
  3. Tipos condicionais
← Voltar para TypeScript Academy