我开始研究一个项目,其中前端部分用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'
会使情况变得更糟,因为现在内部模块依赖于它们的松散感依赖。
我的问题是:
- 有没有办法从内部模块迁移到外部模块
一步一步的时尚?
- 也许可以跳过对外部模块的重构?然后我不知道Angular 1.x和基于Angular 2.x的应用程序部分如何共享相同的代码/类型。
感谢任何想法