HarmonyOS鸿蒙Next严格模式下报错

HarmonyOS鸿蒙Next严格模式下报错 定义了一个接口,在新建接口时报错,报 Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals) <ArkTSCheck> 错误

export interface QueryCallback { onSuccess(resVo: ResVo): void; onFailed(resVo: ResVo, code: number, msg: string): void; }

let callback: QueryCallback = { onSuccess: (resVo: ResVo) => {}, onFailed: (resVo: ResVo, code: number, msg: string) => {} }

开发工具里面提示报错


更多关于HarmonyOS鸿蒙Next严格模式下报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

请在entryability的oncreate生命周期加以下两行代码

let imp: QueryCallbackImp = new QueryCallbackImp();
ResourceService.queryResource('xxx', imp);

//1.接口的定义 import hilog from ‘@ohos.hilog’;

export interface QueryCallback { onSuccess(int: number): void;

onFailed(resVo: number, code: number, msg: string): void;

}

//2.1 接口的实现 export class QueryCallbackImp implements QueryCallback { test() { throw new Error(‘Method not implemented.’); }

onSuccess(int: number) {
    hilog.info(0x0000, 'testTag', '% { public }s', 'testmytest');
    // throw new Error('Method not implemented.');
}

onFailed(resVo: number, code: number, msg: string) {
    throw new Error('Method not implemented.');
}

}

//2.2实现接口的类的对象获取

//第二点中是综合了2.1和2.2

//3、接口回调定义 export class ResourceService { static queryResource(resId: string, callback: QueryCallback) { callback.onSuccess(1) } }

//4、接口回调调用

更多关于HarmonyOS鸿蒙Next严格模式下报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next的严格模式下,报错通常是由于代码不符合严格模式的规范要求。严格模式是鸿蒙系统为了提高代码质量和安全性而引入的一种开发模式,它会检查代码中的潜在问题,如未声明的变量、重复的属性名等。在严格模式下,开发者需要遵循更严格的编码规范,否则会导致报错。

具体来说,严格模式下的报错可能包括以下几种情况:

  1. 未声明的变量:在严格模式下,使用未声明的变量会直接报错,而不是隐式地创建一个全局变量。

  2. 删除变量、函数或函数参数:严格模式下,尝试删除变量、函数或函数参数会报错。

  3. 重复的属性名:在对象字面量中,严格模式下不允许出现重复的属性名。

  4. 禁止使用with语句:严格模式下,with语句被禁用,使用会导致报错。

  5. 禁止使用eval创建变量:严格模式下,eval不会在局部作用域中创建变量。

  6. 禁止使用arguments.callerarguments.callee:严格模式下,这两个属性被禁用,使用会导致报错。

  7. 禁止使用八进制字面量:严格模式下,八进制字面量(如0123)会导致报错。

  8. 禁止对只读属性赋值:严格模式下,尝试对只读属性赋值会报错。

  9. 禁止删除不可删除的属性:严格模式下,尝试删除不可删除的属性(如delete Object.prototype)会报错。

  10. 禁止使用this指向全局对象:在严格模式下,this不会指向全局对象,而是undefined,如果代码依赖这种行为,可能会导致报错。

解决这些报错的方法通常是检查代码是否符合严格模式的规范,并进行相应的修改。

在HarmonyOS鸿蒙Next的严格模式下报错,通常是由于代码不符合严格模式的要求。严格模式要求开发者编写更规范、更安全的代码,避免潜在的错误和漏洞。建议检查代码中是否存在未声明的变量、重复的属性名、不规范的语法等问题,并按照严格模式的要求进行修正。例如,确保所有变量都使用letconst声明,避免使用eval等不安全的方法。

回到顶部