HarmonyOS 鸿蒙Next实现接口怎么写

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next实现接口怎么写

以Android为例子:

public interface CertCallBack {

/**
 * 成功后回调
 * @param resultDesc ResultDesc.getResultDesc
 */
String success(String resultDesc);

}

作为参数实现:

CertUtil.getCertStatus(new CertCallBack() {
@Override
public String success(String resultDesc) {
}

});

请问arkTS怎么写呢,编译器没有提示也很痛苦,相关文档没看到,demo有看到function

export interface CustomPromise {
call: Function;
}

但是返回值怎么弄呢?

先谢谢!

8 回复
export default interface CallBack {


callback:()=>void; // 方法

}

let hello:CallBack = { callback: () => {



} };

调用 即可

API12 会报错:

Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)cke_139.png

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

把AudioPlayListener 摘出去定义一个类。 export class AudioPlayListener { onPlayComplete() { console.log(’’) } onPlayError() { console.log(’’) } } 使用的时候AudioPlayListener.onPlayComplete()

接口的定义:
export interface CustomPromise {
call(): void
}

实现类:

export class PromiseClass implements CustomPromise {
call() {
console.log('implements CustomPromise')
}
}

没有匿名类的实现,定义一个局部变量:

let promiseClass: CustomPromise = {
call() {
console.log('implements CustomPromise')
}
}

API12 会报错:Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)

把接口定义在.ts文件中,而不是.ets文件中即可。

在HarmonyOS(鸿蒙)系统中实现接口,通常遵循Java或Kotlin(取决于你使用的编程语言)的接口定义规范。你需要定义一个接口,其中包含你需要实现的方法。然后,在你的类中使用implements关键字来实现这个接口,并提供接口中所有方法的具体实现。

例如,定义一个简单的接口MyInterface和一个实现该接口的类MyClass

// 定义接口
public interface MyInterface {
    void myMethod();
}

// 实现接口
public class MyClass implements MyInterface {
    @Override
    public void myMethod() {
        // 实现方法体
    }
}

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部