以下样式的声明是否在TypeScript文件中执行任何操作?
/* globals console define require React async */
或者使用TypeScript有不同的方法吗?
答案 0 :(得分:3)
不,它对TypeScript编译器没有影响。
通常通过在typescript编译器选项中选择一个预定义库设置来选择当前在范围内的全局变量,例如此命令行
tsc --lib es5,dom
将随编译器提供的文件lib.es5.d.ts
和lib.dom.d.ts
中声明的所有内容引入全局范围。
如果您查看lib.dom.d.ts
,您可以看到如何在那里声明window
:
declare var window: Window;
Window
是该文件中先前定义的接口。
您可以为自己的全局变量执行相同操作 - 您可以在顶层创建包含.d.ts
的自己的declare var
文件,并在编译中将该文件包含在命令行中或将其添加到files
中的tsconfig.json
。
Everything you installed in node_modules/@types
也包含在编译中,因此这些类型声明的每个全局也在范围内,除非您通过设置" typeRoots"来限制它。或"类型"在tsconfid.json
。
此外,如果您使用一些带有import
的库,它将添加在该库类型声明文件中声明的所有全局变量(以及来自import
或{{引用的所有依赖项的类型声明文件1}}指令)。