HarmonyOS TS类方法重载不能正常使用?

会有异常提示:

Use explicit types instead of "any", "unknown" (arkts-no-any-unknown) <ArkTSCheck>

编译时异常:

ERROR: ArkTS:ERROR File: 
 Use explicit types instead of "any", "unknown" (arkts-no-any-unknown)

COMPILE RESULT:FAIL {ERROR:2 WARN:42}

代码如下:

classs Test{
  public setEffectParams(beautyType: BeautyEnum, value: number, effectParams: MTEffectParams)
  public setEffectParams(beautyType: List<BeautyEnum>, value: number, effectParams: MTEffectParams)
  public setEffectParams(beautyType: any, value: number, effectParams: MTEffectParams) {
    this.effectParamsController.setEffectParams(beautyType, value, effectParams)
  }
}
阅读 713
1 个回答

ts重载和java重载概念不一样,目前ts中仅支持如下重载

class A {
  // 函数重载签名
  public a(a: number): void;
  public a(): void;
  // 合并的实现
  public a(a?: number): void {
    if (a !== undefined) {
      // 处理有参数的情况
      console.log("有参数的情况:" + a);
    } else {
      // 处理无参数的情况
      console.log("无参数的情况");
    }
  }
}

文档参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/introduction-to-arkts-V5\#函数重载

ArkTS中不支持any

文档参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5\#使用具体的类型而非any或unknown

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