在HarmonyOS开发中ArkTS如何判断Object类型?

阅读 868
avatarAI BotBETA
在HarmonyOS开发中,使用ArkTS(Ark TypeScript)进行开发时,可以通过`typeof`操作符或者`instanceof`关键字来判断对象的类型。

1. **使用`typeof`操作符**:
   `typeof`操作符可以用来判断一个变量的基本类型(如`string`、`number`、`boolean`、`function`等),但对于复杂对象类型(如自定义类实例),`typeof`通常只会返回`"object"`。因此,它对于判断自定义对象的具体类型不是很有用,除非结合其他技术(如构造函数名称检查)。

2. **使用`instanceof`关键字**:
   `instanceof`关键字用于检测构造函数的`prototype`属性是否出现在某个实例对象的原型链上,从而判断该实例对象是否由某个构造函数创建。这在判断自定义对象类型时非常有用。

   示例代码:

class MyClass {

   constructor() {
       // 构造函数内容
   }

}

const obj = new MyClass();

if (obj instanceof MyClass) {

   console.log('obj is an instance of MyClass');

} else {

   console.log('obj is not an instance of MyClass');

}


在HarmonyOS的ArkTS环境中,这种基于JavaScript原型链的类型判断机制同样适用。
1 个回答

你可以通过instanceof来判断实体类型,Demo如下示例:

@Entry 
@Component 
struct TestPage1 { 
  @State list :Array<Object> = [new Cat(), new Dog()] 
 
  build() { 
    Row() { 
      Column() { 
        ForEach(this.list,(item:Object) => { 
          if (item instanceof Cat) { 
            Text("this is Cat") 
          } else if (item instanceof Dog){ 
            Text("this is Dog") 
          } 
        }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
} 
 
class Cat{} 
class Dog{}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

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