Sobes.tech
Back to questions
Middle+
2

Практическое задание: написать TypeGuard для определения типа животного (Dog или Cat)

Companies where asked
Evocargo

Answer from AI

sobes.tech AI

TypeGuard в TypeScript позволяет уточнить тип объекта во время выполнения, чтобы компилятор понимал, какой именно тип используется.

Пример TypeGuard для определения, является ли животное собакой или кошкой:

interface Dog {
  bark(): void;
}

interface Cat {
  meow(): void;
}

function isDog(animal: Dog | Cat): animal is Dog {
  return (animal as Dog).bark !== undefined;
}

// Использование:
function makeSound(animal: Dog | Cat) {
  if (isDog(animal)) {
    animal.bark();
  } else {
    animal.meow();
  }
}

Здесь функция isDog проверяет наличие метода bark, что позволяет TypeScript сузить тип внутри условного блока.