interface.uts
作为整个插件的入口声明 文档找了个遍也没看到怎么定义每个函数的名称 通篇都是类型 ,类型导出也是犯愁
插件申明文件中 export type和export type 对外都不可见,尝试用 export class (本不应该用class,这里没有具体实现)
结果 编译运行开始报错平台实现没找到导出的类型
然后在接口声明一个 接口 去平台目录实现 好家伙接口中要返回的类型必须 改成接口里面声明的接口 外面又看不到接口中导出的 interface
只能用typ 导出 t ype导出了 实现的时候需要一个class 去实现返回封装 好家伙类型又报错
interface.uts
export/open/public/ interface IResult {
x:number
y:number;
close():void
}
export interface IPlugins {
a():void
b():Promise<IResult>
}
web/index.uts
class IResultWebImpl implements IResult {
//
}
PluginsWebImpl implements IPlugins {
//...
}
// page/index.uts;
import * as P from '@/uni_modules/xx'
P.b().then(r:P.IResult ) {
// .....
}
外部使用的始终是 接口定义的不关心实现 这种模式很难实现吗?
简化一下
interface.uts
export/open/public/ interface IResult {
x:number
y:number;
close():void
}
// export interface IPlugins { 省略掉
export function a ():void
export function b ():Promise<IResult>
// }
或者使用 internal open public protected declare 等等标记 一下 应该不是多难得事情
面向接口而非实现 不是首要遵守的吗 为什么那么折腾
4 个评论
要回复文章请先登录或注册
2***@qq.com (作者)
蔡cai
2***@qq.com (作者)
蔡cai