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"
相关推荐
姓蔡小朋友3 分钟前
React基础
前端·react.js·前端框架
IT_陈寒19 分钟前
Vue的动态组件坑了我整整一天!
前端·人工智能·后端
恋猫de小郭21 分钟前
Flutter 最好的 AI 自动化测试工具:Patrol
android·前端·flutter
Cobyte22 分钟前
AI 的个人便签纸:Claude Code 的 TodoWrite 模式
前端·后端·aigc
hai31524754324 分钟前
FiveOS V3.0 交付(微服务器操作系统版 · 物理合规修正
linux·人工智能·spring boot·后端·神经网络·机器学习
硅农深芯29 分钟前
芯片设计后端工作流程详解
后端·芯片设计
风兮雨露30 分钟前
Java 从入门到精通,前端资料
java·开发语言·前端
ZC跨境爬虫35 分钟前
跟着 MDN 学CSS day_43:CSS布局挑战——从浮动到弹性盒与栅格的综合实践
前端·css·ui·html·tensorflow
Oneslide39 分钟前
mysql备份指定表
后端
Qres82143 分钟前
Hexo博客本地配置
前端·博客·hexo