网站搜索

javascript - 在声明它的同一文件中使用全局变量?


是否可以在声明它的同一个文件中使用全局变量?

以下代码不会抛出编译时错误:

declare global {
  const something = "something goes here";
}
export default {
  somethingElse: something + " else"
}

然而,它似乎在同一个文件以及我使用它的其他所有文件中都引起了“未定义变量”错误。

答案#1

TypeScript 的 declare 语法用于声明在模块上下文中已经全局存在的变量。例如,在 Web 应用程序中,如果变量可能来自 TypeScript 不知道的 <script> 标签,这些变量及其类型可以使用 declare 声明,以便可以进行类型检查。

因此,TypeScript 不会警告你 something 未定义,因为它期望该变量已经在其他地方声明过,并且你的 declare global {} 块会通知它该声明。