Enonic XP 全球 TS 类型
Enonic XP 全球变量的脚本定义
安装
npm i --save-dev @enonic-types/global
使用
将相应的类型添加到您的 tsconfig.json 用于应用程序服务器侧类型Script代码的文件 :
{
"compilerOptions": {
"types": [
"@enonic-types/global"
]
}
}
之后,所有的全局XP变量都会被打入.
导入函数, 例如 require,如果输入库的相应类型也被添加到
tsconfig.json。 。 。 .
配置
需求
为自定义库添加类型解析支持 require你可以重新声明 XpLibraries 全球范围的接口,
这将导致宣布合并:
declare global {
interface XpLibraries {
'/lib/custom/mylib': typeof import('./mylib');
}
}
其他进口
如果您想要使用自定义导入函数, 如 __non_webpack_require__ 带有 Webpack 的,只需使用全局 XpRequire 类型 :
declare const __non_webpack_require__: XpRequire;
豆类
创造出一个新的豆子,一个 __.newBean() 函数必须使用。 让它回归一个合适的类型可以有两种方式. 说你创造了
用于您项目中的某个界面 :
interface SomeHelper {
help(text: string): void;
}
备选案文1
您可以明确传递类型参数 。 这个选项有点干净.
const helper = __.newBean<SomeHelper>('com.me.project.SomeHelper');
备选案文2
或者可以将豆名映射为豆界面. 如果用豆子处理多个文件,这样做可能更可取:
declare global {
interface XpBeans {
'com.me.project.SomeHelper': SomeHelper;
}
}
const helper = __.newBean('com.me.project.SomeHelper');