[имя] что такое type guard в TypeScript и как он работает? Что произойдёт, если type guard для union-типа всегда возвращает `true`?

Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.

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

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

Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.

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

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

Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.

Например, после неверного предиката строковый метод можно вызвать у числа. TypeScript не доказывает соответствие тела заявленному предикату во всех случаях. Проверка должна действительно различать варианты union по надёжному признаку и учитывать null и внешние данные.

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

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

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

Подробнее