当前位置: 首页 > news >正文

【HarmonyOS】鸿蒙中Interface实例实现的书写格式

【HarmonyOS】鸿蒙中Interface实例实现的书写格式

ArkTS中Interface的定义和实现:

一、接口的定义:

TestInterface .ets

// 添加export 在其他类才能导入,需要特别注意
export interface TestInterface {// 与java等语法不同的点,定义函数时通过 ()=> void 来表达。onTest: (s: string, n: number) => void// => 箭头后表示返回值onTest2: (s: string) => string}

有些同学在定义上,依旧与java等语法相同,在接口实现时就会报错,提示:
Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)

二、接口的实现:
当接口定义后,我们在需要调用实现interface接口处进行实例化接口的实现:
1.我们可以直接创建全局对象进行接口的实例化:

  private mTestInterface: TestInterface = {onTest: (s: string, n: number) => {console.log(this.TAG, "s: " + s + " n:" + n);},onTest2: (s: string) => {return s;}}this.mTestInterface.onTest("test", 1);this.mTestInterface.onTest2("1")

2.亦或者通过匿名的形式进行接口的实现:

   let testCallBack: TestInterface = {onTest: (s: string, n: number) => {console.log(this.TAG, "s: " + s + " n:" + n);},onTest2: (s: string) => {return s;}}testCallBack.onTest("test", 1);

DEMO示例:

import { TestInterface } from '../interface/TestInterface';

struct InterfacePage {private TAG: string = "InterfacePage";aboutToAppear(): void {this.mTestInterface.onTest("test", 1);}private mTestInterface: TestInterface = {onTest: (s: string, n: number) => {console.log(this.TAG, "s: " + s + " n:" + n);},onTest2: (s: string) => {return s;}}build() {Row() {Text(this.mTestInterface.onTest2("1")).fontSize(50)}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}export interface TestInterface {onTest: (s: string, n: number) => voidonTest2: (s: string) => string}

http://www.mrgr.cn/news/67813.html

相关文章:

  • 华为eNSP:QinQ
  • 【C++笔记】string类的模拟实现
  • Git 的分支管理
  • How to use ffmpeg to convert video format from .webm to .mp4
  • spark-yarn模式的配置
  • 项目实战:基于Linux的Flappy bird游戏开发
  • 从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
  • 为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
  • LeetCode 热题100 之 栈
  • 最新!2024年十大邮件群发软件年终盘点
  • 【工具分享】Agent.iih勒索病毒解密工具
  • 《龙腾世纪4》拍照模式照片保存位置介绍
  • 国土空间规划实景三维智能可视化分析平台
  • 人工智能从业证书--抓住未来十年的趋势!
  • 微深节能 煤码头自动化翻堆及取料集控系统 格雷母线
  • 软件设计师:具有3个节点的二叉树有5种,可推测出具有4个节点的二叉树有几种?推测方式详解
  • UE5.1 控制台设置帧率
  • Me-LLaMA——用于医疗领域的新型开源大规模语言模型
  • Spring JDBC模板
  • linux系统编译ptlib
  • 【CANOE】【学习】【诊断功能】正响应抑制
  • Excel 无法打开文件
  • 【推荐】python、django、drf学习博客网址推荐
  • I.MX6U 裸机开发3. GPIO操作控制LED灯
  • 什么是进销存与供应链管理?进销存与供应链有什么区别?
  • [JAVAEE] 网络基础