15

我真的很困惑环境和全局依赖关系。我理解了全局依赖的概念,这意味着全局安装依赖。但是谈到环境依赖,我不明白它是什么,现在打字最近宣布环境现在是全局的。我完全迷路了。

有人可以帮我解决这个困惑。

4

1 回答 1

11

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

至于他们是什么......

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

“外部模块”是具有顶级导入或导出的 .d.ts 文件。外部模块由声明模块“....”中的类型包装,经过一些依赖魔术后,您最终会得到不会污染项目全局名称空间的声明。

至于为什么这很重要,您可能会遇到版本冲突和/或重复定义。

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

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

这一切都归结为您希望键入声明可用的范围。

于 2016-05-26T09:51:03.830 回答