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
2024-12-23 16:25:37
浏览
收藏 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
微信
回复
2024-12-23 18:08:19
相关问题
HarmonyOS如何获取一个名称
1564浏览 • 4回复 待解决
ArkTS获取对象所有方法
2324浏览 • 1回复 待解决
ArkTs中如何获取对象
3088浏览 • 1回复 待解决
ArkTS获取组件位置和大小接口
3908浏览 • 1回复 待解决
如何获取应用名称
932浏览 • 1回复 待解决
HarmonyOS 如何获取应用名称
597浏览 • 1回复 待解决
HarmonyOS 如何获取App应用名称
277浏览 • 1回复 待解决
HarmonyOS 获取应用名称
668浏览 • 1回复 待解决
如何获取当前设备设备名称
3004浏览 • 1回复 待解决
如何获取APP版本名称
624浏览 • 1回复 待解决
如何获取router push所有page?
774浏览 • 0回复 待解决
如何获取对象所有方法
877浏览 • 1回复 待解决