HarmonyOS ArkTS怎么获取类的implements的集合及获取所有接口名称

export default class EntryAbility extends RNAbility implements Person {
  getPagePath() {
    return 'pages/Index';
  }
  dance() {
  }
  sing(song: string) {
  }
}

如上面示例代码,应该怎么获取EntryAbility中有哪些implements的接口名称?(比如想拿到Person)应该怎么获取EntryAbility中定义了哪些接口?(比如想拿到getPagePath、dance、sing)

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

问题一应该没有方法能直接获取实现的接口名称,只能自己找个容器手动存起来,使用的时候从容器中取出如果是继承的话也可以考虑写个ts的工具方法。

static getSuperClass(subClass) {
  const superProto = Object.getPrototypeOf(subClass.prototype);
  if (superProto && superProto.constructor) {
    console.log(superProto.constructor.name)
  }
}

问题二可以考虑写个ts的工具类:

import EntryAbility from '../entryability/EntryAbility'
TsUtils.getFuncName(EntryAbility)
export class TsUtils{
  static getFuncName(obj: any){
    const objPrototype = obj.prototype
    const FuncNames = Object.getOwnPropertyNames(objPrototype)
    FuncNames.forEach(funcName => {
      console.log('====Func: ' + funcName)
    });
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS如何获取一个名称
903浏览 • 4回复 待解决
ArkTS获取对象所有方法
1636浏览 • 1回复 待解决
ArkTs中如何获取对象
2619浏览 • 1回复 待解决
HarmonyOS 如何获取应用名称
80浏览 • 1回复 待解决
如何获取应用名称
385浏览 • 1回复 待解决
ArkTS获取组件位置和大小接口
3431浏览 • 1回复 待解决
HarmonyOS 获取应用名称
201浏览 • 1回复 待解决
如何获取APP版本名称
240浏览 • 1回复 待解决
如何获取当前设备设备名称
2575浏览 • 1回复 待解决
如何获取router push所有page?
384浏览 • 0回复 待解决
如何获取当前设备品牌名称
496浏览 • 1回复 待解决
如何获取对象所有方法
431浏览 • 1回复 待解决
HarmonyOS 获取class实例上所有函数名
493浏览 • 1回复 待解决