Что делает TypeScript utility type Extract? Что произойдёт, если передать значение, которого нет в union?

Extract<T, U> оставляет из union T только варианты, совместимые с U. Если совпадений нет, результат — never, а не новое значение в union.

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

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

Extract<T, U> оставляет из union T только варианты, совместимые с U. Если совпадений нет, результат — never, а не новое значение в union.

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

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

Extract<T, U> оставляет из union T только варианты, совместимые с U. Если совпадений нет, результат — never, а не новое значение в union.

Например, Extract<'a' | 'b', 'b' | 'c'> равно 'b', а Extract<'a' | 'b', 'c'> равно never. Это операция над типами, не runtime-фильтрация. Присвоение значения переменной типа never вызовет ошибку компиляции; сам Extract с несовпадающим U допустим.

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

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

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

Подробнее