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
相关问题
匿名内部类如何更新外部类变量
148浏览 • 0回复 待解决
接口内定义匿名回调语法
157浏览 • 1回复 待解决
arkts类似安卓clippadding属性
156浏览 • 1回复 待解决
arkts能否直接调用nodejs接口
177浏览 • 1回复 待解决
卡片服务功能支持应用内部使用吗?
5565浏览 • 1回复 待解决
ArkTS获取组件位置和大小接口
1064浏览 • 1回复 待解决
如何实现类似keyframes效果
315浏览 • 1回复 待解决
如何实现类似插槽功能
265浏览 • 1回复 待解决
能使用ArkTS来调用Java代码吗?
4123浏览 • 1回复 待解决