gpt4 book ai didi

typescript - 在 TypeScript 中创建全局变量

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

我一直在开发一个用于 Http 请求的小型“库”。它是用 TypeScript 编写的,它有一个主要类,即 Http。我希望在包含我的编译包后能够在我的普通 JavaScript 中使用这个类,所以我正在考虑让它全局可用的方法。

我正在使用 gulp-tsify 作为编译器,它确实将我的 TypeScript 编译到 es5 包中,这很棒,但作为自调用函数在不同的范围内。当我在编译后重写我的包时(下面的代码)它工作正常,但是如何在不重写包脚本的情况下实现这一点?

我的意思是……我编译的 TypeScript 看起来像这样:

(function e(t,n,r){ ... })(function(require, module, exports){
...
// Somewhere here I've got var Http_1 = require('/...');
}, n, r)
// console.log(Http_1) -> undefined

当我像那样(手动)声明全局 http 时...

var http;
(function e(t,n,r){
...
})(function(require, module, exports){
...
// Somewhere here I've got var Http_1 = require('/...')
http = Http_1;
// or I can do this without the Http_1
http = require('./classes/Http');
}, n, r)
// console.log(http) -> everything's fine

...用户可以使用 http 对象,但我希望它由编译器自动完成。

我在考虑在 TypeScript 中使用 declare var http = Http; 之类的东西,但我无法实现它,因为 Initializers 在环境上下文中是不允许的。关于如何完成的任何想法?谢谢。

最佳答案

要添加浏览器全局项,只需将项目附加到窗口对象即可。

window['Http'] = Http;

关于typescript - 在 TypeScript 中创建全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488513/

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