使用typescript模块进行Browserify -什么是最佳设计实践?

Browserify with typescript modules - what are best design practices?

本文关键字:最佳 什么 模块 typescript Browserify 使用      更新时间:2023-09-26

我有一个browserify javascript项目,在那里我包含模块与require语句。我现在添加一些typescript,它的工作很好,当我简单地require编译的javascript。

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

在较新的TypeScript版本(1.5)中,module已被弃用,取而代之的是namespace关键字。关键字用于创建内部模块——允许你在内部组织你的代码。

所以现在更明显的是它们是不同的东西。TypeScript仍然提供了创建browserify/node的模块——外部模块的能力。为此,你可以使用ES6模块语法或更老的TypeScript语法。然后使用browserify插件(比如tsify)来更方便地构建。

更多关于TypeScript模块和命名空间的文档可以在这里找到(也描述了旧的外部模块语法)

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