ArkTS-Object类型详解

Object类型

Object类型是所有引用类型的基类型。任何值,包括基本类型的值(它们会被自动装箱),都可以直接被赋给Object类型的变量。属性可以是不同的数据类型,包括基本数据类型和其他对象类型。

  • 官方资料:
    https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5

  • 创建对象

   const person: Object = {
       name: 'John',
       age: 30,
       hobbies: ['reading', 'swimming']
   };
   console.log(person.name); // 输出 John
   console.log(person.age); // 输出 30
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 添加和修改属性
   const car: Object = { brand: 'Toyota' };
   car.model = 'Camry';
   car.year = 2023;
   console.log(car); // 输出 { brand: 'Toyota', model: 'Camry', year: 2023 }
  • 1
  • 2
  • 3
  • 4
  • 方法的使用
   const calculator: Object = {
       add: function(a: number, b: number): number {
           return a + b;
       }
   };
   console.log(calculator.add(5, 3)); // 输出 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在 ArkTS 中,Object类型有以下一些限制:

  • 类型不明确性, 由于 Object类型非常宽泛,可以表示任意对象,这就导致在使用时无法确定具体的属性和方法。例如:
   const obj: Object = { name: 'Alice' };
   // 以下代码会报错,因为编译器不知道 obj 是否有 age 属性
   console.log(obj.age); 
  • 1
  • 2
  • 3

在对 Object类型的变量进行操作时,编译器无法提供准确的类型检查和智能提示,增加了出错的风险。

  • 缺乏特定方法和属性的保证
   const maybeFunctionHolder: Object = {};
   // 以下代码会报错,因为 maybeFunctionHolder 不一定有 doSomething 方法
   maybeFunctionHolder.doSomething();
  • 1
  • 2
  • 3
  • 与强类型特性的冲突
    1 ArkTS 强调强类型和类型安全,使用 Object类型可能会削弱这种安全性。相比明确指定具体的类型结构,Object类型在类型检查方面提供的保障较少。
    2 在与其他强类型语言特性结合使用时,如函数参数类型指定、返回值类型确定等,Object类型可能会导致类型不匹配的问题,增加调试的难度。

登录后您可以享受以下权益:

×
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

举报

选择你想要举报的内容(必选)
  • 内容涉黄
  • 政治相关
  • 内容抄袭
  • 涉嫌广告
  • 内容侵权
  • 侮辱谩骂
  • 样式问题
  • 其他
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回顶部