我有一个包含在我经常使用的模块中的库,所以我想将它提升为“全局”并在不需要它的情况下使用。
在纯javascript中

window.mylib = require("mylib")

但我发现在typescript中很难做到,因为显然不能混合使用“module”和“ambient”代码。所以这不起作用:
import MyLib = require("mylib");
window.mylib = MyLib;
interface Window {
    mylib: mylib;
}

因为窗口接口只对一个文件进行了扩充。
有没有办法做到这一点(这不包括生成自定义mylib.d.ts)?

最佳答案

你应该这样做:
你的模块.ts

import MyLib = require("mylib");

export {};

declare global {
    interface Window {
        mylib: mylib;
    }
}

window.mylib = MyLib;

然后在需要时导入:
import "./yourModule";

这是Global augmentation中的简短讨论。

关于typescript - 如何在 typescript 中将模块提升为全局模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39189420/

10-12 00:59