在HarmonyOS开发中ArkTS语法的问题?问题描述:
class ISubPageParams {}
代码1:
interface IDevToolParams {
/**
* 打开调试页面的二级页面
* @param url
* @param params
*/
openSubPage(params: ISubPageParams): void
// openSubPage: (params: ISubPageParams) => void,
name:string
}
const params: IDevToolParams = {
openSubPage: (params: ISubPageParams) => {
},
name:"999"
}
按代码1的写法,会报编译错误:Object literal must correspond to some explicitly declared class or interface (ArkTS-no-untyped-obj-literals) <ArkTSCheck>
代码2:
interface IDevToolParams {
/**
* 打开调试页面的二级页面
* @param url
* @param params
*/
openSubPage: (params: ISubPageParams) => void,
name:string
}
const params: IDevToolParams = {
openSubPage: (params: ISubPageParams) => {
},
name:"999"
}
按代码2这样写确没有报错,这是为什么?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
方式1中IDevToolParams 定义的接口中的方法是openSubPage(params: ISubPageParams): void,即返回值是空的一个方法,而实现类却是openSubPage: (params: ISubPageParams) => {
}这是将openSubPage方法定义为((params: ISubPageParams)=> {} 类型,类型不一样,所以找不到了。
但方式2定义和实现是一样的,所以没报错。
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。