Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.
[имя] что такое type guard в TypeScript и как он работает? Что произойдёт, если type guard для union-типа всегда возвращает `true`?
Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Type guard сужает тип по проверке; пользовательскому предикату вида value is T компилятор доверяет, поэтому всегда true может скрыть runtime-ошибку.
Например, после неверного предиката строковый метод можно вызвать у числа. TypeScript не доказывает соответствие тела заявленному предикату во всех случаях. Проверка должна действительно различать варианты union по надёжному признаку и учитывать null и внешние данные.