Object 和 object 和 {}
小于 1 分钟
Object 和 object 和 {}
Object

Object类型是所有Object类的实例的类型,由以下两个接口来定义:
Object接口定义了Object.prototype原型对象上的属性。ObjectConstructor接口定义了Object类的属性,如Object.create()。
这个类型跟原型链有关,原型链的顶层就是
Object,所以值类型和引用类型最终都指向Object。
object
object代表所有非值类型的类型,如Array | Set | Map | Function等,常用于泛型约束。
{}
这是一个看起来很别扭的东西,我们可以将其理解为new Object,即和Object基本一样,它包含所有类型。
示例:
let a: Object = 123 // 不报错 let a1: Object = "123" // 不报错 let a2: Object = false // 不报错 let a3: Object = [] // 不报错 let a4: object = 123 // 报错 let a5: object = "123" // 报错 let a6: object = false // 报错 let a7: Object = [] // 不报错 let a8: {} = 123 // 不报错 let a9: {} = "123" // 不报错 let a10: {} = false // 不报错 let a11: {} = [] // 不报错注:当我们使用
{}时,无法对其进行修改,如:let a: {} = { name: "zhangsan" } a.name = "lisi" // 报错 a.age = 18 // 报错所以
{}类型还是少用的好。