HarmonyOS 范型列表转化问题

由于数据回来的都是json一般来说用的时候直接

data['data'] as Model[]

但是这种情况下的实例只有默认字段。想要做一个通用范型的方式把这个数据通过构造函数转换成数组的形式。比如:

export const convertModels = <T>(items: T[]): T[] => {
  let _items: T[] = []
  for (let i = 0; i < items.length; i++) {
    _items.push(new T(items[i]))
  }
  return _items
}

类似于这样的实现要怎么写。

HarmonyOS
2025-01-09 14:37:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

泛型数据,参考示例:

@Entry
@Component
struct GenericsT {
  build() {
    Column() {
      Button('测试').onClick((event: ClickEvent) => {
        this.test()
      })
    }
  }

  test() {
    let obj: ESObject = { 'sum': 'value', 'bbb': 'ccc' };
    let reClass: ResponseJson<TestMap> = new ResponseJsonClass(true, 'dsa', 'dgger', obj);
    console.log('111: ' + JSON.stringify(reClass))
  }
}

export interface ResponseJson<R> {
  success: boolean
  errorCode: string
  message?: string
  data: R | null
}

export class ResponseJsonClass<R> implements ResponseJson<R> {
  success: boolean = false
  errorCode: string = ''
  message?: string
  data: R | null = null
  constructor(success: boolean, errorCode: string, message: string, data: R | null) {
    this.success = success;
    this.errorCode = errorCode;
    this.message = message;
    this.data = data;
  }
}

// 其中泛型R可以转换成其他的类,比如以下类
export class TestMap {
  message: string;

  constructor(msg: string) {
    this.message = msg;
  }
}
分享
微博
QQ
微信
回复
2025-01-09 17:16:34
相关问题
HarmonyOS 如何定义一个可空的
269浏览 • 1回复 待解决
HarmonyOS 代码转化问题
747浏览 • 1回复 待解决
HarmonyOS ArkTS泛问题
473浏览 • 1回复 待解决
HarmonyOS 滚动列表问题
317浏览 • 1回复 待解决
HarmonyOS 滚动列表问题
420浏览 • 0回复 待解决
HarmonyOS 列表选择问题
257浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
950浏览 • 1回复 待解决
HarmonyOS 列表List相关问题
829浏览 • 1回复 待解决
HarmonyOS 视频列表播放问题
330浏览 • 1回复 待解决
HarmonyOS 后台应用列表模糊问题
208浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
463浏览 • 1回复 待解决
HarmonyOS 关系数据库加密的问题
826浏览 • 1回复 待解决
HarmonyOS 关于关系数据库的问题
593浏览 • 1回复 待解决
HarmonyOS 列表展示list懒加载问题
929浏览 • 1回复 待解决
HarmonyOS 转化时间戳
503浏览 • 1回复 待解决
刷新列表加载更多问题
672浏览 • 1回复 待解决
关于获取应用列表权限问题
3884浏览 • 1回复 待解决
列表滑动惯性处理问题
649浏览 • 1回复 待解决
HarmonyOS 列表上拉tabs悬浮置顶问题
290浏览 • 1回复 待解决
关系数据库相查询问题
828浏览 • 1回复 待解决