使用 TypeScript 的全局声明

globals declarations with TypeScript

以下声明样式在 TypeScript 文件中有作用吗?

/* globals console define require React async */

或者是否有使用 TypeScript 的不同方法?

不,它对 TypeScript 编译器没有影响。

通常通过在打字稿编译器选项中选择一个预定义的库设置来选择当前范围内的全局变量,例如此命令行

tsc --lib es5,dom

将编译器提供的文件 lib.es5.d.tslib.dom.d.ts 中声明的所有内容带入全局范围。

如果你查看 lib.dom.d.ts,你可以看到例如 window 是如何声明的:

declare var window: Window;

Window 是该文件前面定义的接口。

您可以对自己的全局变量执行相同的操作 - 您可以创建自己的 .d.ts 文件,在顶层包含 declare var,然后在命令行或添加该文件进行编译它到 tsconfig.json 中的 files

默认情况下,

Everything you installed in node_modules/@types 也包含在编译中,因此这些类型声明的每个全局变量也在范围内,除非您通过在 [=] 中设置 "typeRoots" 或 "types" 来限制它22=].

此外,如果您将某些库与 import 一起使用,它将添加在该库类型声明文件中声明的所有全局变量(以及来自其所有引用的依赖项的类型声明文件中 import/// reference 指令)。