Browsewrity与打字稿模块 – 什么是最好的devise实践?

我有一个browserify JavaScript项目,在那里我包含require语句的模块。 我现在正在添加一些打字稿,并且当我仅仅require编译的JavaScript时它工作正常。

但打字稿也有它自己的module声明。 这与browserify / node的模块有什么关系? 我应该同时使用吗? 这似乎是多余的。 应该使用哪种types的模块,以及在什么情况下? 谢谢。

在较新版本的TypeScript(1.5)中,该module被弃用,以支持namespace关键字。 关键字用于创build内部模块 – 允许您在内部组织代码。

所以现在更明显的是那些是不同的东西。 仍然TypeScript提供创buildbrowserify /节点的模块 – 外部模块的能力。 为此,您可以使用ES6模块语法或较旧的TypeScript语法。 然后使用browserify插件(如tsify)更方便的构build。

有关TypeScript模块和名称空间的更多文档可以在这里find(还描述了旧的外部模块语法)

应使用哪种types的模块取决于开发人员的项目和品味。 如果您的目标是Node.js,那么使用CommonJS模块(TS中的IMHO ES6语法并将其传输到CommonJS)是值得的。 如果您正在使用浏览器,则也可以使用外部模块。 build议仅在一个文件中使用命名空间 – 因此内部模块。