Sobes.tech
Middle+

O que é uma guarda de tipo?

sobes.tech IA

Resposta da IA

Type guard — é um mecanismo no TypeScript que permite esclarecer o tipo de uma variável numa determinada secção de código, para que o compilador possa trabalhar com esse tipo de forma segura. Type guard — é uma função ou expressão que verifica se um objeto corresponde a um tipo específico.

Exemplo de type guard usando uma função personalizada:

interface Gato {
  meow(): void;
}

interface Cão {
  bark(): void;
}

function isGato(animal: Gato | Cão): animal is Gato {
  return (animal as Gato).meow !== undefined;
}

function speak(animal: Gato | Cão) {
  if (isGato(animal)) {
    animal.meow(); // TypeScript sabe que é um Gato
  } else {
    animal.bark(); // Aqui é um Cão
  }
}

Assim, o type guard ajuda a trabalhar de forma segura com tipos unidos, esclarecendo-os dentro de estruturas condicionais.