HarmonyOS 判断实例对象是否是某个类的实例?

我接口请求回来数据是

data : [
  {
    'age' : 5
  },
  {
    'age' : 6
  }
]

创建了一个类

Person

age : number = 0

没有实现constructor

当在接收数据时 使用 showList = data as Array<Person\>

这样获取到的数据能够使用打点调用属性,item instanceof Person 这是得到的结果是false是什么原因呢

阅读 400
1 个回答

请参考以下代码解析

@Entry
@Component
struct JsonPage {
  resultInfo: string = '{"state":0,"message":"ok","user":{ "id":"001","name":"zhangsan" }}'

  build() {
    Column() {
      Text('test').onClick(() => {
        const temp: Respon = JSON.parse(this.resultInfo);
        console.info(temp.user.name)

      })
    }
  }
}

class Respon {
  state: string = ''
  message: string = ''
  user: User = new User();
}

class User {
  id: string = ''
  name: string = ''
}

ArkTS部分支持instanceof,可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5\#部分支持instanceof运算符

在传递的过程中可能会发生以下情况: 对象的属性在传递的过程中被修改。 对象的引用在传递的过程中被改变。 对象的构造函数可能尚未完成执行,导致对象状态不完整。 以上情况都可能导致在接收线程中使用instanceof进行类型判断时出现错误。因此,直接依赖instanceof进行类型判断不够安全。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏