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"
相关推荐
咖啡八杯13 小时前
GoF设计模式——策略模式
java·后端·spring·设计模式
lizhongxuan14 小时前
AI Agent 上下文压缩利器 Headroom
后端
kyriewen14 小时前
别再 console.log 了:5 个 Chrome DevTools 调试技巧,用过就回不去了
前端·javascript·面试
Csvn16 小时前
SSH 远程管理与安全加固 — 运维的守门之道
后端
IT_陈寒16 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
DigitalOcean17 小时前
Laravel 开发者已在 DigitalOcean 上开通超过 10 万台服务器
前端·laravel
星始流年17 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
菜鸟谢17 小时前
Rust 智能指针完整详解
后端
李惟17 小时前
开源本地通信库,纯客户端 RPC,像聊天一样通信
前端
YAwu1117 小时前
深入解析 React 炫彩鼠标跟随标题组件:从坐标定位到动画性能
前端·react.js