【发布时间】:2017-06-06 20:22:10
【问题描述】:
以下声明风格在 TypeScript 文件中是否有任何作用?
/* globals console define require React async */
或者有没有其他方法可以用 TypeScript 做到这一点?
【问题讨论】:
标签: typescript typescript-typings typescript2.0
以下声明风格在 TypeScript 文件中是否有任何作用?
/* globals console define require React async */
或者有没有其他方法可以用 TypeScript 做到这一点?
【问题讨论】:
标签: typescript typescript-typings typescript2.0
不,它对 TypeScript 编译器没有影响。
当前范围内的全局变量通常通过在 typescript 编译器选项中选择预定义库设置之一来选择,例如此命令行
tsc --lib es5,dom
将编译器提供的文件lib.es5.d.ts 和lib.dom.d.ts 中声明的所有内容引入全局范围。
如果您查看lib.dom.d.ts,您会看到例如window 是如何在那里声明的:
declare var window: Window;
Window 是该文件前面定义的接口。
您可以对自己的全局变量执行相同的操作 - 您可以在顶层创建自己的包含 declare var 的 .d.ts 文件,并在命令行中将该文件包含在编译中或将其添加到 files 中tsconfig.json。
Everything you installed in node_modules/@types 默认情况下也包含在编译中,因此这些类型声明的每个全局变量也在范围内,除非您通过在tsconfid.json 中设置“typeRoots”或“types”来限制它。
此外,如果您使用带有 import 的库,它将添加在该库类型声明文件中声明的所有全局变量(以及在类型声明文件中来自其所有使用 import 或 /// reference 指令引用的依赖项)。
【讨论】: