有人可以清楚地解释为什么TypeScript中有类型object
,为什么要用它代替JavaScript Object
接口呢?
类似地,为什么不使用array
类型,而是使用JavaScript接口Array
?
在Internet上看到类似的示例,其中Array<Object>
和Array<object>
处于相似的上下文会有些令人困惑。
答案 0 :(得分:2)
object
代表任何不是原始的东西;因此不是number
,string
,boolean
,symbol
,null
或undefined
之外的任何事物。
Object
表示所有对象共有的功能;诸如.toString()和.valueOf()之类的东西。但是要警告!由于装箱(装箱是将图元包裹在对象中的位置),因此图元也有效地具有这些属性,因此以下内容完全合法:
const a: Object = 5;
const b: Object = "hello";
const c: Object = true;
相反,以下所有都是错误:
const a: object = 5;
const b: object = "hello";
const c: object = true;
因此,Object
几乎永远不是您要使用的,而应该使用object
。
另请参见Do's and Don'ts上的Typescript页面