TypeScript的object大小写的区别

object小写

object(⼩写)的含义是:所有⾮原始类型,可存储:对象、函数、数组等,由于限制的范围⽐较宽泛,在实际开发中使⽤的相对较少。

  • 可以定义任何引用类型类型的数据
  • 不可以 定义原始数据(基本数据)类型的数据
ts 复制代码
let a:object //a的值可以是任何【⾮原始类型】,包括:对象、函数、数组等
// 以下代码,是将【⾮原始类型】赋给a,所以均符合要求
a = {}
a = {name:'张三'}
a = [1,3,5,7,9]
a = function(){}
a = new String('123')
class Person {}
a = new Person()

// 以下代码,是将【原始类型】赋给a,有警告
a = 1 // 警告:不能将类型"number"分配给类型"object"
a = true // 警告:不能将类型"boolean"分配给类型"object"
a = '你好' // 警告:不能将类型"string"分配给类型"object"
a = null // 警告:不能将类型"null"分配给类型"object"
a = undefined // 警告:不能将类型"undefined"分配给类型"object"

Object大写

官⽅描述:所有可以调⽤Object⽅法的类型。

  • 除了 undefinednull的任何值。实际开发中极少使用
  • 可以赋值原始数据类型的数据。因为所有原始数据类型的数据都是由js内部自动装箱使用构造函数创建的,在原型链上__proto__最终都会指向Object。
ts 复制代码
let b:Object //b的值必须是Object的实例对象(除去undefined和null的任何值)
// 以下代码,均⽆警告,因为给a赋的值,都是Object的实例对象
b = {}
b = {name:'张三'}
b = [1,3,5,7,9]
b = function(){}
b = new String('123')
class Person {}
b = new Person()
b = 1
// 1不是Object的实例对象,但其包装对象是Object的实例
b = true
// truue不是Object的实例对象,但其包装对象是Object的实例
b = '你好' // "你好"不是Object的实例对象,但其包装对象是Object的实例

// 以下代码均有警告
b = null // 警告:不能将类型"null"分配给类型"Object"
b = undefined // 警告:不能将类型"undefined"分配给类型"Object"
相关推荐
Hazenix24 分钟前
Go 指南:一篇文章速通 Golang
开发语言·后端·golang
灯澜忆梦27 分钟前
GO_复合类型---指针
开发语言·后端·golang
IT_陈寒32 分钟前
SpringBoot自动装配坑了我一天,原来问题出在这
前端·人工智能·后端
星栈1 小时前
深度复盘:比 EventLoop 更隐蔽!Node 微任务堆积引发的线上接口雪崩事故
后端·node.js
索西引擎1 小时前
【React】key 属性:协调算法中的元素标识机制与最佳实践
前端·javascript·react.js
名字还没想好☜2 小时前
Go slice 的 append 陷阱:共享底层数组导致的数据串改
开发语言·后端·golang·go·slice
诸神缄默不语2 小时前
FastAPI后端配置CORS中间件支持浏览器跨域访问
后端·fastapi
Fanta丶2 小时前
14.Activiti7 网关 排他网关ExclusiveGateway、并行网关ParallelGateway
后端
只会cv的前端攻城狮2 小时前
动态组件架构设计:从配置到事件驱动全链路解析
前端·vue.js
飞天狗2 小时前
Next.js 16 App Router 实战:服务端组件与流式渲染
前端·next.js