// -------------------------- 05 - TypeScripe加餐环节 介绍object、Object、{} 类型
/**
* 1、Object -- 大写的Object
* 2、object -- 小写的Object 常用于泛型约束
* 3、{} -- 一个字面量的空对象数据 少用此类型
*/
/**
* Object -- 大写的Object
* 为什么Object可以运用于 任何类型 这跟原型链有关系 所有类型最终都指向这个Object
* 对于Object最终 你理解成 包含所有数据类型的一个类型就可以了
*/
let a:Object =123
let a1:Object ='123'
let a2:Object = false
let a3:Object ={num:'123'}
let a4:Object =[1,2,3]
let a5:Object =()=>{}
/**
* object -- 小写的Object 常用于泛型约束
* 支持所有的引用类型 数据
* 不支持所有的 原始类型 数据
*
* 引用数据类型 Array Object Funciton
* 基础原始类型 Number String Boolean undefined null Symbol
*/
let b:object =123 // 错误 --- 123是原始类型数据
let b1:object ='123' // 错误 --- '123'是原始类型数据
let b2:object = false // 错误 --- false是原始类型数据
let b3:object = null // 错误 --- null是原始类型数据
let b4:object = undefined // 错误 --- undefined是原始类型数据
let b4:object = Symbol(1) // 错误 --- Symbol是原始类型数据
let b5:object ={num:'123'} // 正确 引用类型 对象
let b6:object =[1,2,3] // 正确 引用类型 数组
let b7:object =()=>{} // 正确 引用类型 function函数
/**
* {} -- 一个字面量的空对象数据 少用此类型
* 可以理解为new Object new了一个大写的Object出来
* 他也可以任意任何数据类型 不过有个缺点 他不能修改和新增任何属性
*
*/
let c:{} = 11
let c1:{} = '11'
let c2:{} = false
let c3:{} = {name:1}
c3.name = 20 // 修改失败
c3.age = 20 // 新增失败
export {}
原创:前端-悟空 请勿抄袭 可以转载