HarmonyOS ArkTS使用问题,有这样的场景,该怎么写?

用http请求时候,想在 网络层,统一处理通用参数;比如,外部传入 {"a":"hello"},想统一处理成 {"a":"hello","token":"xxxxx"}。

遇到问题:

1.对Object对象比较陌生,不知道怎么用;

2.如果合并Object对象,如 objectA:{"a":"hello"},objectB:{"b":"hello"},是否能合并成ObjectC:{"a":"hello","b":"hello"}。3. let tmpVlue = {"a":"",b:"}这样会报错。

Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals) <ArkTSCheck> 

必须先声明一个 class Value {a:string,b:string} ,然后才能使用?

HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

可以自定义assign对象方法, 参考下面demo:

@Entry
@Component
struct Index {
  assign(target: Record<string, Object>, ...source: Object[]): Record<string, Object> {
    for (const items of source) {
      for (const key of Object.keys(items)) {
        target[key] = Reflect.get(items, key)
      }
    }
    console.log('test', JSON.stringify(target))
    return target;
  }

  aboutToAppear(): void {
    let map1: Record<string, ESObject> = { 'a': '1' }
    let map2: Record<string, ESObject> = { 'b': '1', 'c': '5' }
    this.assign(map1, map2)
  }
  build() {
  }
}

ArkTS这边做了部分语法限制,无法直接使用Object对象的Object.assign(target, source)方法直接合并对象,所以可以封装下assign方法进行对象合并。

分享
微博
QQ
微信
回复
4天前
相关问题
HarmonyOS ArkTS中运算符重载怎么
46浏览 • 1回复 待解决
AppGallery Connect使用问题场景
1760浏览 • 1回复 待解决
HarmonyOS NFC读、场景demo?
160浏览 • 1回复 待解决
ArkTS中globalThis无法使用如何替换
2413浏览 • 1回复 待解决
请问ArkTS中this使用场景是什么?
2075浏览 • 1回复 待解决
鸿蒙怎么接入realtek这样厂家wifi?
8117浏览 • 3回复 待解决
HarmonyOS文件上传怎么
642浏览 • 1回复 待解决
HarmonyOS BLE数据问题
603浏览 • 1回复 待解决
鸿蒙promise要怎么
7537浏览 • 3回复 待解决
HarmonyOS ArkTS扫描UI如何实现
130浏览 • 1回复 待解决