在 TypeScript 中,{},object 和 Object 表示三个不同的类型,它们的区别和用途

在 TypeScript 中,{},object 和 Object 表示三个不同的类型,它们的区别和用途:
{} 表示一个空的对象,或者称为空类型(empty type)或者叫定位没有限制的对象类型(unrestricted object type),它表示没有属性和方法的纯对象。在 TypeScript 中,我们可以使用它来限制函数参数或返回值,例如:
function printObject(obj: {}) {
console.log(obj);
}
printObject({name: ‘John’}); // ok
printObject([]); // ok
printObject(‘hello’); // ok

在上面的代码中,我们定义了一个 printObject 函数,参数为 {},也就是空类型,表示这个函数可以接受任意类型的 object 作为参数,包括空对象、数组、字符串等等。
object 表示一个非原始类型的对象,也就是除了 number、string、boolean、symbol、null 和 undefined 以外的类型。它是 TypeScript 中的一个内置类型,可以用来约束函数参数和返回值。例如:
function printObject(obj: object) {
console.log(obj);
}
printObject({name: ‘John’}); // ok
printObject([]); // ok
printObject(‘hello’); // Error: Argument of type ‘string’ is not assignable to parameter of type ‘object’.

注意:使用 object 约束参数时,只要对象中至少有一个属性存在,即可通过类型检查。
Object 表示 JavaScript 中的全局对象,也就是 window 或者 global 对象,主要是在浏览器和 Node.js 环境下使用。在 TypeScript 中,Object 表示这个全局对象的类型,通常用于约束复杂对象的类型。例如:
function getObjectKeys(obj: Object) {
return Object.keys(obj);
}
getObjectKeys({name: ‘John’, age: 30}); // [‘name’, ‘age’]
getObjectKeys(‘hello’); // Error: Argument of type ‘string’ is not assignable to parameter of type ‘Object’.

在上面的代码中,我们定义了一个 getObjectKeys 函数,它只接受 Object 类型的参数,并返回这个对象的所有属性名。由于 Object 表示全局对象,所以我们可以通过它的 keys 方法获取任意对象的属性名。
总之,在 TypeScript 中,{}、object、Object 三种类型都是表示对象类型的关键字,不同的是,它们的精确含义和用途略有不同。在使用时,我们需要根据具体需求来选择恰当的类型。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieChan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值