gpt4 book ai didi

typescript - 如何在 typescript 中将模块提升为全局?

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:27 25 4
gpt4 key购买 nike

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

在纯 JavaScript 中很简单

window.mylib = require("mylib")

但我发现在 TypeScript 中很难做到,因为显然你不能混合“模块”和“环境”代码。所以这是行不通的:

import MyLib = require("mylib"); 
window.mylib = MyLib;
interface Window {
mylib: mylib;
}

因为Window界面只针对一个文件增加了。

有没有办法做到这一点(不包括生成自定义 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com