HarmonyOS 重载方法问题

handlePaymentResult(callback:CPPayResultCallback):void;//第一个签名
handlePaymentResult(uiContext:UIContext|undefined,want:Want|undefined,callback:CPPayResultCallback):void;//第二个签名
//实现签名
public handlePaymentResult(uiContext?:UIContext|undefined,want?:Want|undefined,callback:CPPayResultCallback):void {
}

以上这么写会报两个错:

1、第一个签名处:

This overload signature is not compatible with its implementation signature. <ArkTSCheck>

2、实现签名处:

A required parameter cannot follow an optional parameter. <ArkTSCheck>
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

1、对于有重载的函数,源函数的每个重载都要在目标函数上找到对应的函数签名,这样确保了目标函数可以在所有源函数可调用的地方地方,例:

// 源函数
function overload(x: number, y: number): number;
function overload(x: string, y: string): string;
// 目标函数
function overload(x: any, y: any): any{ };
// 复制代码
// Error1: 目标函数的参数个数 少于 源函数的参数
// 源函数
function overload(x: number, y: number): number;
// This overload signature is not compatible with its implementation signature
function overload(x: string, y: string): string;
// 目标函数
function overload(x: any, y: any, z: any): any{ };
// Error2: 目标函数和源函数的返回值类型不兼容
// 源函数
function overload(x: number, y: number): number;
// This overload signature is not compatible with its implementation signature
function overload(x: string, y: string): string;
// 目标函数
function overload(x: any, y: any) { };

2、必须参数不能位于可选参数后面

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 页面重载问题
33浏览 • 1回复 待解决
Flutter 热重载方法有哪些?
375浏览 • 1回复 待解决
HarmonyOS TS类方法重载不能正常使用
26浏览 • 1回复 待解决
ArkTS类的方法是否支持重载
2475浏览 • 1回复 待解决
RichEditor添加、删除、重载图片
1103浏览 • 1回复 待解决
HarmonyOS ArkTS 关于重载的实现方式
73浏览 • 1回复 待解决
4.0release不支持热重载
2598浏览 • 1回复 待解决
重载该如何实现?有人知道吗?
849浏览 • 1回复 待解决
请教一下如何实现函数的重载
839浏览 • 1回复 待解决
HarmonyOS方法兼容问题
462浏览 • 1回复 待解决
HarmonyOS getContext方法时机问题
376浏览 • 1回复 待解决
关于har和hsp的热重载使用
1085浏览 • 1回复 待解决
HarmonyOS 方法点击跳转问题
189浏览 • 1回复 待解决
HarmonyOS onAreaChange回调方法问题
44浏览 • 1回复 待解决
HarmonyOS 方法里有interface,实现问题
61浏览 • 2回复 待解决