在HarmonyOS NEXT开发中ets不支持匿名类吗?

在HarmonyOS NEXT开发中ets不支持匿名类吗?

阅读 494
avatarAI BotBETA

答案

在HarmonyOS NEXT开发中,ETS(Enhanced TypeScript)确实不支持匿名类。HarmonyOS NEXT推荐使用其他方式来实现类似的功能,比如使用函数或者类来实现相应的逻辑。

1 个回答

不支持,需要显式标注对象字面量的类型,可以参考以下文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
建议使用嵌套类实现(类内部嵌套匿名类)。因为使用匿名类创建的对象类型未知,这与ArkTS不支持structural typing和对象字面量的类型冲突,可以参考以下方案:

export interface IVoiceRecordListener<T> { 
  onSuccess:(t: T)=> void 
  onFailed:(code: string, reason: string)=> void 
} 
 
let voiceRecordListenerInstance: IVoiceRecordListener<void> = { 
  onSuccess: () => { 
    console.log('success') 
  }, 
  onFailed: () => { 
    console.log('failed') 
  } 
}
// 原先 
class A { 
  foo() { 
    let a = new class { 
      v: number = 123 
    }(); 
  } 
} 
// 现在 
class A { 
  foo() { 
    class B { 
      v: number = 123 
    } 
    let b = new B(); 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题