【问题标题】:Expose TypeScript variable to JS global scope (with webpack) [duplicate]将 TypeScript 变量公开给 JS 全局范围(使用 webpack)[重复]
【发布时间】:2020-07-31 19:29:53
【问题描述】:

我正在使用 webpack 将我的 TypeScript 编译为 Javascript,并且我想将一个变量公开给全局范围,以便其他人可以访问它。

我知道如何在 TypeScript 中执行以下操作

window["MyVariable"] = 'Hello';

然后像这样在 JavaScript 中读取它

console.log(window.MyVariable);

但如果我可以将它放在这样的全局范围内,我会更喜欢。

console.log(MyVariable);

这可能吗?

最好的问候, 尼克

【问题讨论】:

    标签: javascript typescript webpack


    【解决方案1】:

    当然可以; TS 只是增加了类型安全性(并根据目标 ES 版本进行一些转译)。

    由于window 是浏览器中的全局对象,因此向其中添加成员可以使其全局可用。

    根据严格设置(例如,禁止隐式 any),您可能会遇到编译器错误,但这很容易解决:

    (window as any).MyVariable = 'Hello';
    

    【讨论】:

    • 非常感谢Lucero的回复,我不知道!很好用,谢谢!
    【解决方案2】:

    在 JavaScript 中没有window. 就可以访问全局范围内的任何内容。因此,如果您设置了window['MyVariable'] = 'Hello',您可以在JavaScript 中简单地使用MyVariable 访问它。

    【讨论】:

    • 但不在打字稿中?
    • @JonasWilms,我不认为你可以在 TypeScript 中从这个场景中访问MyVariable,就像在 JavaScript 中一样,无需输入。但是如果你声明它,类型检查器不应该抱怨。
    猜你喜欢
    • 2017-10-05
    • 2017-04-16
    • 1970-01-01
    • 2019-06-27
    • 2012-11-05
    • 2015-08-07
    • 2014-09-17
    • 1970-01-01
    • 2018-09-02
    相关资源
    最近更新 更多