全局和环境依赖性 - 打字

Global and Ambient Dependencies - typings

我真的对环境依赖和全局依赖感到困惑。我了解全局依赖项的概念,这意味着全局安装依赖项。但是谈到环境依赖性,我不明白它是什么,现在打字最近宣布 ambient is now global。我完全迷路了。

谁能帮我解决这个困惑。

首先让您放心,环境类型和全局类型是同一回事,只是名称更改,因为 global 更好地描述了它们的功能

至于他们是什么....

全局声明,使用最简单的定义是项目全局名称中可用的类型space。

"external module" 是具有顶级导入或导出的 .d.ts 文件。外部模块被 Typings 包装在 declare module '....' 中,在一些依赖魔法之后,你最终得到了不会污染项目全局名称 space 的声明。

至于为什么这很重要,您可以 运行 与版本和/或重复定义发生冲突。

包 A 依赖于依赖项 X 的版本 1.4 包 B 依赖于依赖项 X

的 2.0 版

如果包 A 和包 B 的定义都是全局的,那么版本冲突(相同依赖项的不同定义)最终会出现在全局名称中space,并且 TypeScript 编译器会崩溃。

这一切都取决于您希望键入声明的范围。