Что такое TypeScript type guard и зачем он нужен?

Type Guard в TypeScript — это специальная функция или выражение, которое позволяет сузить тип переменной внутри условного блока кода.

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

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

Type Guard в TypeScript — это специальная функция или выражение, которое позволяет сузить тип переменной внутри условного блока кода. Type Guard помогает компилятору понять, что в определённом участке кода переменная имеет более конкретный тип, чем объявлено изначально.

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

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

Type Guard в TypeScript — это специальная функция или выражение, которое позволяет сузить тип переменной внутри условного блока кода. Type Guard помогает компилятору понять, что в определённом участке кода переменная имеет более конкретный тип, чем объявлено изначально.

Например, функция с возвращаемым значением param is SomeType является пользовательским Type Guard:

function isString(value: unknown): value is string {
  return typeof value === 'string';
}

function example(value: unknown) {
  if (isString(value)) {
    // Здесь TypeScript знает, что value — string
    console.log(value.toUpperCase());
  } else {
    // Здесь value не string
  }
}

Type Guards полезны для безопасной работы с переменными, тип которых может быть объединением нескольких типов (union types). Они повышают безопасность и удобство разработки, позволяя избежать ошибок типов во время выполнения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее