HarmonyOS SDK .d.ts 声明问题

HarmonyOS SDK 对外接口 .d.ts 的最佳实践是什么?希望同时提供 Callback 和 promise 两种接口。所以设计是有个核心类的 .d.ts 声明文件,在该文件中声明有相同功能的 Callback 和 promise 方法。在 .ts 中做具体的 Callback 和 promise 的兼容实现。

现在的问题是,如果导出 .d.ts 文件,会报如下错误:

ERROR:  ArkTS:ERROR Failed to get an resolved OhmUrl by filepath "hvigor_ignore_.._model_UserInfo.d"  COMPILE RESULT:FAIL {ERROR:2} 

如果导出 .ts 文件,就只会看到一个 ts 方法,无法做到HarmonyOS的提示有 (+1 overload)(例如调用 pushService.getToken() )是否需要做什么特殊的处理?

HarmonyOS
2024-08-27 14:37:49
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以参考如下写法:

class UserInfo { 
  private uid: string; 
  private name: string; 
  private age: number; 
  constructor(uid: string) { 
    this.uid = uid; 
  } 
  getUserInfo(): Promise<UserInfo>; 
  getUserInfo(callback: (user: UserInfo) => void): void; 
  getUserInfo(callback?: (user: UserInfo) => void): Promise<UserInfo> | void { 
    if (callback) { 
      let user = new UserInfo(this.uid); 
      user.name = "testName"; 
      user.age = 12; 
      if (callback) { 
        callback(user); 
      } 
    } else { 
      return new Promise((resolve: Function, reject: Function) => { 
        let user = new UserInfo(this.uid); 
        user.name = "testName"; 
        user.age = 12; 
        resolve(user); 
      }); 
    } 
  }
分享
微博
QQ
微信
回复
2024-08-27 17:37:10
相关问题
怎么让项目全局使用d.ts
3254浏览 • 1回复 待解决
HarmonyOS entry模块声明问题
236浏览 • 1回复 待解决
ts 声明式开发不能使用js的getApp()
4299浏览 • 1回复 待解决
HarmonyOS 权限声明文件配置问题
410浏览 • 1回复 待解决
HarmonyOS TS转ArkTS用法问题
167浏览 • 1回复 待解决
关于DevEco Studio harmonyos SDK问题
14779浏览 • 5回复 待解决
harmonyOS SDK 原生广告的问题
18浏览 • 0回复 待解决
HarmonyOS关于TS转ArkTS的语法问题
302浏览 • 1回复 待解决
SDK问题,视频播放替代?
159浏览 • 1回复 待解决
HarmonyOS SDK和openHarmony SDK怎么选择?
7985浏览 • 1回复 待解决
HarmonyOS 如何声明全局回调函数
238浏览 • 1回复 待解决
DevEco Studio 配置Openharmony SDK时npm问题
10185浏览 • 1回复 待解决