Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про TypeScript: type, guard

Что такое Type Guard и зачем он нужен

Вопрос проверяет понимание сужения типов (type narrowing) и безопасной работы с union-типами.

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

Type Guard — это проверка, которая позволяет TypeScript точно определить тип значения в конкретной ветке кода. Он используется при работе с union-типами, когда поведение зависит от реального типа данных. Type Guard делает код безопаснее и избавляет от лишних проверок и приведения типов. Он может быть встроенным или пользовательским.

Длинный ответ

Определение

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

Встроенные Type Guard

  1. typeof

  2. instanceof

  3. Проверка по свойству

Пример:

function print(value: string | number) {
  if (typeof value === 'string') {
    value.toUpperCase();
  }
}

Пользовательский Type Guard

type User = { name: string };
type Admin = { name: string; role: string };

function isAdmin(user: User | Admin): user is Admin {
  return 'role' in user;
}

Использование:

if (isAdmin(u)) {
  u.role;
}

Зачем они нужны

  1. Безопасная работа с union-типами

  2. Читаемый код без as

  3. Защита от runtime-ошибок

Вывод

Type Guard — ключевой инструмент TypeScript для безопасной логики, когда тип значения определяется во время выполнения.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • TypeScript

    TypeScript

Ключевые слова

#type

#guard

Подпишись на React Developer в телеграм