TypeScript的全局声明

时间:2017-01-22 04:50:22

标签: typescript typescript-typings typescript2.0

以下样式的声明是否在TypeScript文件中执行任何操作?

/* globals console define require React async */

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

1 个答案:

答案 0 :(得分:3)

不,它对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文件,并在编译中将该文件包含在命令行中或将其添加到files中的tsconfig.json

默认情况下,

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

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

相关问题