全局和环境依赖性 - 打字
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 编译器会崩溃。
这一切都取决于您希望键入声明的范围。
我真的对环境依赖和全局依赖感到困惑。我了解全局依赖项的概念,这意味着全局安装依赖项。但是谈到环境依赖性,我不明白它是什么,现在打字最近宣布 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 编译器会崩溃。
这一切都取决于您希望键入声明的范围。