Browserify with typescript modules - 什么是最佳设计实践?

时间:2015-10-02 03:00:34

标签: javascript node.js module typescript browserify

我有一个browserify javascript项目,其中包含带有require语句的模块。我现在正在添加一些打字稿,当我只编译require编译的javascript时,它工作正常。

但是,typescript也有自己的module语句。这与browserify / node的模块有什么关系?我应该同时使用两者吗?这似乎是多余的。应该使用哪种类型的模块,以及在什么情况下? 感谢。

1 个答案:

答案 0 :(得分:1)

在较新版本的TypeScript(1.5)中,不推荐module使用namespace关键字。该关键字用于创建内部模块 - 允许您在内部组织代码。

所以现在更明显的是那些是不同的东西。仍然TypeScript提供了创建browserify / node模块的能力 - 外部模块。为此,您可以使用ES6 module syntax或更早的TypeScript语法。然后使用browserify插件(例如tsify)进行更方便的构建。

可以找到有关TypeScript模块和命名空间的更多文档here(还描述了旧的外部模块语法)

应该使用哪种类型的模块取决于开发人员的项目和品味。如果您以Node.js为目标,则值得使用CommonJS模块(TS中的IMHO ES6语法并将其转换为CommonJS)。如果您使用的是browserify,那么使用外部模块也是合理的。建议命名空间仅在一个文件中使用 - 因此内部模块。