【发布时间】:2016-05-17 22:54:10
【问题描述】:
我听说“环境”一词用于描述使用typings 工具下载的类型定义。但这意味着什么?
我似乎找不到它的简单定义或--ambient 标志。
【问题讨论】:
标签: typescript
我听说“环境”一词用于描述使用typings 工具下载的类型定义。但这意味着什么?
我似乎找不到它的简单定义或--ambient 标志。
【问题讨论】:
标签: typescript
来自 TypeScript 文档:
环境声明将变量引入 TypeScript 范围,但对发出的 JavaScript 程序的影响为零。程序员可以使用环境声明来告诉 TypeScript 编译器某些其他组件将提供变量。例如,默认情况下,TypeScript 编译器将打印未定义变量的使用错误。要添加浏览器定义的一些公共变量,TypeScript 程序员可以使用环境声明。
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#1.1
说得简单一点。环境声明告诉 TypeScript 编译器,当执行 JavaScript 时,会存在 TypeScript 编译器现在看不到的东西(因为它不是 TypeScript)。
想象一下,如果您正在编写使用 jQuery 的代码。如果您只是尝试编写 $(),TypeScript 会认为您正在使用未声明的变量 $ 并会抛出错误。 declare var $ 这样的环境声明告诉 TS 编译器,即使 $ 对编译器不可见,但在执行 JS 时它会存在。
【讨论】:
从打字v1.0.0 版本开始,不清楚的术语ambient 一直是changed to global。
您可以简单地认为这些类型定义对项目来说是“全局的”。
【讨论】: