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

Что остаётся после typeof object

Вопрос

Какой тип у v внутри if? Впишите тип.

function f(v: string | Date | null) {
  if (typeof v === 'object') {
    v; // v: /* ? */
  }
}

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

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

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

Коротко

Правильный тип: Date | null. typeof для Date и для null даёт 'object', а для строки 'string'.

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

Date | null

Разбор

typeof для Date и для null даёт 'object', а для строки 'string'. Поэтому строка отсекается, а null остаётся. Это частая ловушка: проверка на 'object' не защищает от null.

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

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