📜  typescript globalThis - TypeScript (1)

📅  最后修改于: 2023-12-03 15:35:24.148000             🧑  作者: Mango

TypeScript: 全局变量 "globalThis"

TypeScript 是一个开源的编程语言,它是 JavaScript 的超集,它提供了静态类型检查、类和接口等面向对象的特性,并支持 ECMAScript 最新版本。

在 TypeScript 3.4 版本中,新增了一个名为 globalThis 的全局变量,它指向全局对象。在浏览器中,它是 window 对象;在 Node.js 环境下,它是 global 对象。

为什么需要 globalThis

在以前,我们需要在代码中使用不同的全局对象,比如在浏览器中使用 window 对象,在 Node.js 环境下使用 global 对象。这样不方便移植和维护,也容易引起代码错误。

为了解决这个问题,JavaScript 最新的 ES2020 规范引入了全新的全局对象 globalThis,它可以在任何环境下通过统一的方式访问全局对象。

在 TypeScript 中,我们可以使用 globalThis 来访问全局对象,在运行时它会自动指向当前环境中的全局对象。

如何使用 globalThis

在 TypeScript 中,我们可以使用 globalThis 来访问全局对象的属性和方法,比如:

// 访问全局对象的属性
const userAgent = globalThis.navigator.userAgent;

// 访问全局对象的方法
globalThis.console.log("Hello, world!");

如果我们希望在 TypeScript 中使用 globalThis,我们需要在 tsconfig.json 中将选项 lib 设置为 ["es2020"],这样 TypeScript 才能识别 globalThis

{
  "compilerOptions": {
    "lib": ["es2020"]
  }
}
总结

在 TypeScript 中,全局变量 globalThis 可以访问全局对象,在不同的环境中具备统一的访问方式,可以提高代码的移植性和可维护性。我们需要将 tsconfig.json 中的选项 lib 设置为 ["es2020"],才能使用 globalThis