HarmonyOS怎样判断一个实例是否实现了某个接口

怎样判断一个实例是否实现了某个接口看上去使用instanceof不行, 报下面错误:

MyInterface' only refers to a type, but is being used as a value here. <ArkTSCheck
  • 1.

举例:

interface  MyInterface{ 
} 
class MyClass implements MyInterface{ 
} 
let obj = new MyClass()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

怎样判断obj是否实现了MyInterface呢?

HarmonyOS
2024-08-27 14:07:52
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

ArkTS里的instanceof关键字不同于java,只能判断是否是某个class,无法判断是否实现了某个interface。ts语法里可以用in关键字根据成员变量来判断,但是ArkTS不允许使用in关键字。无法对接口进行类型判断,可以使用as进行类型转换后,判断是否有对应属性,来判断具体接口类型,示例代码如下:

interface A { 
  name: string; 
} 
interface B extends A { 
  age: number; 
} 
function test(obj: A) { 
  let some = obj as B; 
  if (some.age !== undefined) { 
    console.log(some.age + '') 
  } 
} 
let obj: B = { 
  name: '1', 
  age: 2 
} 
test(obj);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
分享
微博
QQ
微信
回复
2024-08-27 17:33:08
相关问题
如何判断一个对象实现某个接口
2406浏览 • 1回复 待解决
判断是否实现接口
1085浏览 • 1回复 待解决
怎样实现一个自定义播放器?
1126浏览 • 1回复 待解决
利用native接口实现一个圆角矩形
2414浏览 • 1回复 待解决
如何判断一个对象是否在对象数组中
3398浏览 • 1回复 待解决
怎么判断一个APP是否为多HAP包结构?
1616浏览 • 1回复 待解决
怎么判断某个customDialog是否弹出?
893浏览 • 1回复 待解决
HarmonyOS 判断设备是否安装某个app
697浏览 • 1回复 待解决