HarmonyOS 鸿蒙Next:ArkTS中Object和object的区别

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:ArkTS中Object和object的区别 使用JSON解析字符串时,获取Object对象,不能获取属性值:

let jsonText = '{"name": "John", "age": 30, "city": "ChongQing"}';
let obj = JSON.parse(jsonText);
let name = obj['name'];//提示:Indexed access is not supported for fields (arkts-no-props-by-index)

解析为object时,可以获得属性值:

let obj:object | null = JSON.parse(jsonText);
let name = obj['name'];//无报错

想了解Object和object的区别。


更多关于HarmonyOS 鸿蒙Next:ArkTS中Object和object的区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

在API 12里这样写也报错,需要下面这样写才不报错

let jsonText = '{"name": "John", "age": 30, "city": "ChongQing"}'; 
let name:string = JSON.parse(jsonText)['name']  ;//无报错

API 12是静态分析,发现Object就提示报错,这样写实际得到的还是Object但因为没出现这个关键词,可以说是“逃课”了,骗过了编译器。

官方是不建议使用Object包括object了,建议你自己事先定义class或interface。如果有些框架改动太大,着急少量改动先让项目能用起来,可以用ESObject。

更多关于HarmonyOS 鸿蒙Next:ArkTS中Object和object的区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


变化慢点,变化太快了,快跟不上了,

鸿蒙还没稳定,等给用户商用的手机出来,正式版API 稳定下来就好了。

在HarmonyOS(鸿蒙)的ArkTS(Ark TypeScript)编程环境中,Objectobject 存在明显的区别,主要体现在它们的定义、用途以及所属的上下文环境中。

  1. Object(大写O)

    • 在ArkTS中,Object 通常指的是一个特定的类或者构造器,用于定义类实例或者用于某些特定的框架级功能。它可能是一个内置的、全局可用的类,用于创建对象实例,这些实例可以包含属性和方法。
    • Object 的使用通常与面向对象编程(OOP)概念相关,比如继承、多态等。
  2. object(小写o)

    • 在TypeScript及其衍生环境(包括ArkTS)中,object 是一个内置的类型,用于表示非原始类型的对象。它不包括nullundefined,但包括数组、函数、普通对象等。
    • object 类型主要用于类型注解,以确保变量或参数是一个对象而不是原始类型(如字符串、数字、布尔值)或null/undefined

总结来说,在ArkTS中,Object 更多是作为类或者构造器的引用,而object则是TypeScript内置的一个类型,用于类型检查和约束。这两者的区别主要在于它们在编程中的用途和上下文环境。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!