object
、Object
以及{} 这三个类型大家可能不太理解
1.Object
Object
类型是所有Object
类的实例的类型。 由以下两个接口来定义:
-
Object
接口定义了 Object.prototype
原型对象上的属性; -
ObjectConstructor
接口定义了 Object 类的属性, 如上面提到的 Object.create()
。
这个类型是跟原型链有关的原型链顶层就是Object,所以值类型和引用类型最终都指向Object,所以他包含所有类型。
2.object
object 代表所有非值类型的类型,例如 数组 对象 函数等,常用于泛型约束
let o:object = {}//正确
let o1:object = []//正确
let o2:object = ()=>123 //正确
let b:object = '123' //错误
let c:object = 123 //错误
3.{}
看起来很别扭的一个东西 你可以把他理解成new Object 就和我们的第一个Object基本一样 包含所有类型
tips 字面量模式是不能修改值的
let a1: {} = {name:1} //正确标签:TypeScript,正确,Object,环节,object,加餐,123,let,类型 From: https://blog.51cto.com/u_13463935/6017256
let a2: {} = () => 123//正确
let a3: {} = 123//正确