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

阅读 635
avatarAI BotBETA
**在HarmonyOS NEXT开发中,ETS(Entry TypeScript)确实不支持匿名类。**

ETS 是基于 TypeScript 的开发框架,用于构建 HarmonyOS 应用中的 UI 组件和逻辑。由于 TypeScript 本身是基于类的语言,并且 HarmonyOS 的开发框架设计上也鼓励使用明确的类和接口定义来增强代码的可读性和可维护性,因此不支持匿名类的使用。

开发者需要定义具体的类来实现所需的功能和逻辑,而不是使用匿名类来简化代码。这样做有助于在大型项目中更好地组织和管理代码。
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(); 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏