阅读Angular 2 快速入门,我在TypeScript 配置下遇到了这一部分:
键入文件冲突
TypeScript 编译器不允许重新定义类型。例如,如果为 Promise 类型提供了两个定义,则会引发错误。
双重定义很常见。事实上,打字工具故意创建重复的打字集(原因最好在别处解释)。在项目结构中查找类型文件夹,我们应该在其中找到类似的内容:
typings
browser
ambient
es6-shim
es6-shim.d.ts
main
ambient
es6-shim
es6-shim.d.ts
browser.d.ts
main.d.ts
es6-shim 类型是重复的,并且 browser.d.ts 和 main.d.ts 有重叠的内容。
如果我阅读打字自述文件,它会说:
如果您正在构建前端包,建议您使用 typings/browser.d.ts。浏览器类型是通过遵循浏览器字段覆盖来编译的。
问题:
为什么打字工具故意创建重复的打字集?
为什么推荐你使用typings/browser.d.ts
前端包?
我的猜测是因为支持该browser
领域可以创建不同的类型?
如果是这样,该browser
字段是什么以及它以何种方式更改类型?