1

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

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

import 'angular'; import 'lodash';

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

import 'Application';

这也是由 requirejs 填充的,当我们导入它时,我们会自动获取应用程序的所有导入库列表。


我实际上将项目成功更新为 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?

请帮忙!谢谢。

4

1 回答 1

0

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

为了让@types 库正确加载,我们不得不迁移到 WebPack。

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

于 2019-03-28T18:47:04.430 回答