【问题标题】:What are "Ambient Typings" in the Typescript Typings tool?Typescript Typings 工具中的“Ambient Typings”是什么?
【发布时间】:2016-05-17 22:54:10
【问题描述】:

我听说“环境”一词用于描述使用typings 工具下载的类型定义。但这意味着什么?

我似乎找不到它的简单定义或--ambient 标志。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    来自 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 时它会存在。

    【讨论】:

      【解决方案2】:

      从打字v1.0.0 版本开始,不清楚的术语ambient 一直是changed to global

      您可以简单地认为这些类型定义对项目来说是“全局的”。

      【讨论】:

      • 我认为这是更正确的答案。公认的答案确实有很多关于类型声明的有用信息,但暗示类型擦除仅适用于不正确的环境类型。
      猜你喜欢
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2019-07-31
      • 2016-09-08
      • 2020-08-08
      • 1970-01-01
      相关资源
      最近更新 更多