Harmony中 ArkTs中使用instanceof的避坑指南

140 阅读1分钟

如果是网络请求返回的数据可能是object类型,用instanceof判断类型是判断不出来的. 需要转换下数据,给请求返回的数据加上类型

let list = JSONUtil.jsonToArray(PostVideoListDataListItem,JSON.stringify(resp.list))

类型转换代码

static jsonToArray<T>(cls: ClassConstructor<T>, jsonStr: string): Array<T> {
  try {
    return plainToClass(cls, JSON.parse(jsonStr), { enableImplicitConversion: false, exposeDefaultValues: true }) as Array<T>
  } catch (err) {
    let error = err as BusinessError;
    LogUtil.error(`JSONUtil-jsonToArray-异常 ~ code: ${error.code} -·- message: ${error.message}`);
    return []
  }
}

这样网络请求返回的数据就有类型了.这个时候再去判断类型,就可以判断.