ArkTs支持类似java的匿名内部类实现接口

比如声明一个接口:

export interface QDDownAndUploadHttpCallBack(){ 
  progress(model: progressModel): void 
}

在其他地方,可以不需要创建一个自定义类实现:QDDownAndUploadHttpCallBack,而是类似java的:

new QDDownAndUploadHttpCallBack(){ 
    progress(model: progressModel): void { 
      xxxxx 
    } 
}
HarmonyOS
2024-04-28 00:18:26
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
netos

ArkTS不支持匿名类,建议使用嵌套类实现。因为使用匿名类创建的对象类型未知,这与ArkTS不支持structural typing和对象字面量的类型冲突。

// 原先 
class A { 
  foo() { 
    let a = new class { 
      v: number = 123 
    }(); 
  } 
} 
 
// 现在 
class A { 
  foo() { 
    class B { 
      v: number = 123 
    } 
    let b = new B(); 
  } 
}

或者换成下面这种写法:

onSucces:(t: T)=> void 
onFailed:(code: string, reason: string)=>void 
} 
 
let obj: IVoiceRecordListener<string> = { 
  onSucces:()=>{}, 
  onFailed:()=>{} 
}
分享
微博
QQ
微信
回复
2024-04-28 21:31:12
相关问题
匿名内部类如何更新外部类变量
1657浏览 • 0回复 待解决
谁分享一下如何实现匿名内部类
743浏览 • 1回复 待解决
HarmonyOS 如何实现内部类
75浏览 • 1回复 待解决
实现接口匿名实现传参
345浏览 • 1回复 待解决
HarmonyOS ArkTS是否支持使用匿名
395浏览 • 2回复 待解决
接口内定义匿名回调语法
1592浏览 • 1回复 待解决
ArkTs支持java或者TS Reflect反射用法吗
2450浏览 • 1回复 待解决
list组件是否支持内部移动
229浏览 • 1回复 待解决
HarmonyOS ArkTS接口回调案例
306浏览 • 1回复 待解决