如何在打字稿中声明全局变量

Posted

技术标签:

【中文标题】如何在打字稿中声明全局变量【英文标题】:how can I declare a global variable in typescript 【发布时间】:2017-10-22 20:25:38 【问题描述】:

我在打字稿中声明了一个全局变量,例如: global.test = "某事" 我尝试这样做,我得到错误属性“测试”在“全局”类型上不存在。

【问题讨论】:

我见过人们用几种不同的方式来做这件事。您可以在仅导出每个变量的 .ts 文件中设置全局变量。或者您可以将它们放在一个看起来像环境变量文件的文件中并导入。不过,当您想使用其中的变量时,您仍然必须导入全局文件。 如果是基于浏览器的打字稿,你可以试试 window.test="something" 重复this SO问题。 为什么这个问题(一个更好的 SO 条目的副本)出现得更多,而不是更好的问题?我找到原版的唯一原因是@JeroenHeier 发表了该评论。我猜就是网络搜索的工作方式。 :| 【参考方案1】:

我尝试这样做我得到错误属性“测试”不存在于类型“全局”上。

创建一个文件globals.d.ts

interface Global 
 test: string;

更多

声明文件:https://basarat.gitbook.io/typescript/docs/types/ambient/d.ts.html

【讨论】:

导出接口?需要导出关键字吗? 这应该在你的源文件夹的根目录下,我还需要重新启动我的 VSCode 才能让它工作......【参考方案2】:

在 global.ts 中

export namespace Global 
    export var test: string = 'Hello World!';

在你的.ts中

import  Global  from "./global";
console.log(Global.test)

【讨论】:

这实际上不是全局的,因为仍然需要导入,@basarat 的答案实际上是全局的。

以上是关于如何在打字稿中声明全局变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿中键入枚举变量?

如何在变量打字稿中动态设置当前时间

哈希变量语法在打字稿中如何工作?

在nodejs和打字稿中使用变量到静态方法

无法重新声明块范围变量

在模块内调用全局变量