Выбор ответа Middle Базовые типы обновлено
Что принимает тип {}
Вопрос
Какие значения можно присвоить переменной типа {} при strict: true?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Любое значение, кроме null и undefined. {} значит «нечто без обязательных полей».
Варианты ответа
- Вообще любое значение, включая
null, какunknown - Только объекты без собственных полей, то есть
{} - Любые объекты, но не примитивы
- Любое значение, кроме
nullиundefinedправильный ответ
Разбор
{} значит «нечто без обязательных полей». Ему соответствует любое значение, у которого можно прочитать свойство, то есть всё, кроме null и undefined: строки, числа, функции, объекты.
Это не «пустой объект»: const v: {} = 'hello' компилируется. Для «любого объекта, но не примитива» есть тип object. От unknown тип {} отличается тем, что не принимает null и undefined (при strictNullChecks).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.