我有一个我经常使用的模块中包含的库,因此我想将其推广为“全局”并使用而不需要它。
在纯JavaScript中,它很容易
window.mylib = require("mylib")
但我发现在TypeScript中很难做到,因为显然你不能混合“模块”和“环境”代码。所以这不起作用:
import MyLib = require("mylib");
window.mylib = MyLib;
interface Window {
mylib: mylib;
}
因为Window界面仅针对一个文件进行了扩充。
有没有办法(不包括生成自定义mylib.d.ts)?
答案 0 :(得分:4)
您应该执行以下操作:
yourModule.ts
import MyLib = require("mylib");
export {};
declare global {
interface Window {
mylib: mylib;
}
}
window.mylib = MyLib;
然后你只需在需要时导入它:
import "./yourModule";
在Global augmentation中讨论了它的简短。