Напиши тип Junior Объединения и сужение обновлено

Сужение по typeof

Вопрос

Какое выражение в условии сузит x до string?

function f(x: string | number) {
  if (/* ? */) { x.toUpperCase(); }
}

Попробуйте сами

Напишите тип, как написали бы в коде.

Показать ответ и разбор

Коротко

Правильный тип: typeof x === 'string'. Ответ Почему так Компилятор понимает typeof, instanceof, Array.isArray, проверку на null и поля-дискриминаторы.

Правильный тип

typeof x === 'string'

Разбор

Ответ

typeof x === 'string'

Почему так

Компилятор понимает typeof, instanceof, Array.isArray, проверку на null и поля-дискриминаторы. Это встроенные сужения - писать свой предикат для них не нужно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.