【发布时间】:2015-11-06 02:59:34
【问题描述】:
我已经开始了一个大型打字稿项目。
从一开始,我就想让我的文件井井有条(这个项目将在很多开发人员之间进行拆分,所以顺序非常必要)。
我一直在尝试使用模块/命名空间并将类拆分为每个文件的单独文件,并使用一个包含命名空间的文件夹。
文件结构为:
app.ts
\Classes
---- \Animals
---- ---- Mammals.ts
---- ---- Reptiles.ts
然后我尝试使用类似 import * as Animals from "./Classes/Animals" 的方式在 app.ts 中导入该命名空间中的所有文件
至于命名空间文件本身,我尝试了以下方法,但没有成功:
namespace Animals {
export class Mammals {
constructor() {
}
}
}
还有:
module Animals {
export class Reptiles {
constructor() {
}
}
}
不幸的是,该路径永远无法识别(因为它指向一个文件夹而不是单个文件)。这甚至可能吗?将来自单个命名空间的所有类都放在一个文件中将导致文件长达数千行,并且对于这个项目来说是不可维护的。
我还注意到 TypeScript 1.5 支持 tsconfig.json - 但是,当开发人员开始添加类时,必须手动将每个文件添加到地图是引入问题的可靠方法。
注意:我使用的是 Visual Studio 2015,TypeScript 1.5(我相信,不知道如何验证)。我也开启了 ES6 支持。
【问题讨论】:
-
官方手册涵盖了这个(虽然ut可能已经过时)typescriptlang.org/Handbook#modules-splitting-across-files
-
谢谢@pablochan - 我也看过那个。像这样引用命名空间中的每个文件是违反直觉的。是否可以指向命名空间而不是单个文件?
-
否,除非 Visual Studio 或其他工具对此提供支持。
标签: javascript typescript typescript1.5