Выбор ответа Middle Базовые типы обновлено

Что принимает тип {}

Вопрос

Какие значения можно присвоить переменной типа {} при strict: true?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Любое значение, кроме null и undefined. {} значит «нечто без обязательных полей».

Варианты ответа

  1. Вообще любое значение, включая null, как unknown
  2. Только объекты без собственных полей, то есть {}
  3. Любые объекты, но не примитивы
  4. Любое значение, кроме null и undefinedправильный ответ

Разбор

{} значит «нечто без обязательных полей». Ему соответствует любое значение, у которого можно прочитать свойство, то есть всё, кроме null и undefined: строки, числа, функции, объекты.

Это не «пустой объект»: const v: {} = 'hello' компилируется. Для «любого объекта, но не примитива» есть тип object. От unknown тип {} отличается тем, что не принимает null и undefined (при strictNullChecks).

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

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