Комментарии 19
Нет. Это было сделано раньше. Тип any
был с самого сразу. Иначе, как бы оно дружило с JS?
any
это any
. Заглушка в стиле «возвращает то, не знаю что». А object
это именно объект, просто с утиной типизацией (т.е. требования к наличию определённых свойств в этом объекте определяются нижележащим кодом).Ну, как бы any
, как мне кажется, делает "строго-типизированную надстройку" не такой уж и строгой прям с фундамента. Заглушка any
не только про "возвращает то, не знаю что". Ее можно пихать во все места и не заморачивать мозг всеми этими типизациями. С object
уже не то манто. Как, повторюсь, мне кажется.
Что не отменяется мерзости js
Нет, они ввели новый тип для того чтобы более точно описать некоторые существующие интерфейсы. Например, тот же Object.create
. Каким образом уточнение модели ее вдруг отменяет?
На самом деле, такое наименование следует тому же принципи что и Number
:number
, String
:string
, Boolean
:boolean
. С этим же ни у кого проблем не возникает.
Разве null и undefined являются типами? А не значениями?
Значение null не относится ни к одному из типов выше, а образует свой отдельный тип, состоящий из единственного значения null
Это просто специальное значение, которое имеет смысл «ничего» или «значение неизвестно».
ECMAScript Language Types
И у них ровно по одному значению.
Typescript. Тип object