我已经开始从事一个大型打字稿项目。
从一开始,我就想让我的文件井井有条(这个项目将在许多开发人员之间进行拆分,因此非常有必要进行排序)。
我一直在尝试使用模块/命名空间并将类拆分为每个文件的单独文件,并使用一个文件夹保存命名空间。
文件结构为:
app.ts
\Classes
---- \Animals
---- ---- Mammals.ts
---- ---- Reptiles.ts
然后,我尝试使用类似以下内容导入 app.ts 中该命名空间中的所有文件: import * as Animals from "./Classes/Animals"
至于命名空间文件本身,我尝试了以下方法,但没有成功:
namespace Animals {
export class Mammals {
constructor() {
}
}
}
并且:
module Animals {
export class Reptiles {
constructor() {
}
}
}
不幸的是,该路径从未被识别(因为它指向一个文件夹而不是单个文件)。这可能吗?将我的所有类都来自一个文件中的单个名称空间将导致文件长达数千行,并且对于该项目而言是不可维护的。
我还注意到 TypeScript 1.5 支持 tsconfig.json - 但是,必须手动将每个文件添加到映射是开发人员开始添加类时引入问题的必经之路。
注意:我使用的是 Visual Studio 2015、TypeScript 1.5(我相信,不确定如何验证)。我还打开了 ES6 支持。
原文由 aaron-bond 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用重新导出来创建一个外部模块,该模块对来自其他模块的类型进行分组和公开:
然后像往常一样从新模块导入类型:
或者