我已经开始研究一个项目,其中前端部分用Typescript编写并使用AngularJS 1.x.项目非常庞大 - 在92个C#/ ASP.NET MVC项目的解决方案中分散了大约500个打字稿文件 .

所有的Typescript代码都是使用内部的Typescript模块实现的:

/// <reference path="../folder1/file1.ts" />
/// <reference path="../folder2/file2.ts" />

module Product.Module1 {
   export class Class1 {
      // ...
   }
}

最终目标是迁移到Angular 2.这可能是一个错误的假设,但迁移路径的第一步是将当前的Typescript代码库从内部模块重构为外部模块 .

正如您可能想象的那样,基于500个文件的Typescript应用程序中存在相当大的依赖图 . 试图将上面的示例转换为

class Class1 {
   // ...
}

export { Class1 };

引发多米诺骨牌效应,依赖于此文件的内部模块不再显示 Class1 . 在依赖模块中执行 import { Class1 } from './samplefile' 会使情况变得更糟,因为现在内部模块依赖于它们而忽略了它们的依赖性 .

My questions are:

  • 有没有一种方法可以逐步从内部模块迁移到外部模块?
  • 也许可以跳过对外部模块的重构?然后我看不出Angular 1.x和基于Angular 2.x的应用程序部分如何共享相同的代码/类型 .

任何想法都表示赞赏