AMD RequireJS @types TypeScript 2 Visual Studio 2015 噩梦

AMD RequireJS @types TypeScript 2 Visual Studio 2015 nightmare

我被分配了一项任务,将我们的 angularJs 项目更新为 TypeScript 2

我们目前使用 requirejs (AMD) 填充库,然后使用

import 'angular'; import 'lodash';

这是我理解的ES6模块加载语法。 我们声明一个主应用程序模块并在其中导入库,然后当我们导入应用程序模块时

import 'Application';

这也是被requirejs屏蔽的,我们在导入的时候会自动获取Application的所有导入库列表。


我实际上成功地将项目更新为 TypeScript 2!!!

但是,当我尝试使用@types 来包含 TypeScript 声明文件时,问题出现了。

没有关于如何完成这项工作的完整参考!

****** 问题! ******

当我尝试使用@types/lodash 时,我在所有现有文件中丢失了 _ (lodash) 的智能感知。

当我尝试

import * as _ from 'lodash';

然后我遇到了另一个错误:

Build:Module augmentation cannot introduce new names in the top level scope.

我的理解是 .d.ts 文件导出 UMD 模块。但是如何在我的 Visual Studio 2015 中引用 @types?

请帮忙!谢谢。

requireJS 不会优雅地处理 UMD(通用模块加载)。所有@types 库都是 UMD 库。

我们必须转移到 WebPack 才能正确加载@types 库。

最重要的是,我们这样做是为了更接近升级到 Angular 5,requireJS AMD 无法访问它,因为它从一开始就是用 TypeScript 作为 UMD 编写的。