Я нахожусь в ситуации, когда я хотел бы ввести значение как «любое, кроме неопределенного». Я знаю, что тип {}
представляет собой пустой объект, и поскольку каждое значение в JavaScript является объектом, за исключением undefined
и null
, {}
кажется эквивалентным not null & not undefined
(если в TypeScript существовал какой-то теоретически отрицающий оператор not
).
Это здравое предположение? Существуют ли вообще какие-либо типы, кроме null
и undefined
, которые нельзя присвоить {}
?
42
не является объектом, так как имеет типnumber
. Соответствующий объект будетNumber(42)
, который имеет типNumber
. - person user2864740   schedule 13.05.2020null
иundefined
, могло быть проиндексировано, как если бы оно было объектом, без получения ошибки времени выполнения. - person jcalz   schedule 13.05.2020{}
по сути являетсяnot (null | undefined)
с точки зрения принимаемых значений. С типомvoid
могут быть какие-то заморочки, но это более-менее правильно... так что все, кроме undefined, будет{} | null
- person jcalz   schedule 13.05.2020unknown
и если/как это будет отличаться от{} | null | undefined
. Фактическоеunknown
не рассматривается как эквивалентное{} | null | undefined
, хотя почти каждое значение может быть присвоено любому из них. - person jcalz   schedule 13.05.2020