Создавали ли вы пользовательские type guards? С помощью какого ключевого слова они создаются?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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 сузить тип внутри условного блока.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку