将TypeScript编译为单独的模块或单个文件有什么区别?

时间:2014-02-26 03:27:55

标签: typescript

除了明显的(哈)。

我仍然不确定你为什么选择其中任何一种。

我曾经认为编译单个文件更容易,因为您使用<reference>来链接文件,并且可以使用嵌套模块来管理全局命名空间。

但是现在我认为import/require和许多输出文件可能有助于提高模块性(与常规JavaScript / ES6的相似性)。

但是你可以使用导入来充分命名类型吗?导入时使用额外级别的模块似乎很不方便。

我们还不需要<references>来解析类型注释吗?

我该如何决定?

1 个答案:

答案 0 :(得分:1)

  

我曾经认为编译单个文件更容易,因为您使用<reference>来链接文件,并且可以使用嵌套模块来管理全局命名空间。

基本上使用--out:

亲:开始时很简单。类型可通过简单的<reference注释导入。

Con:单个文件。调试JS时不容易调试。

  

但是你可以使用导入来充分命名类型吗?

使用外部模块时,不应使用内部模块。对于外部模块(amd / commonjs),每个文件都是自己的模块。这将避免&#34;额外/不必要&#34;间接的程度。

  

并且我们仍然需要解决类型注释?

没有。只要您export根级别///<reference某个文件不再执行任何操作。从这样的文件导入类型(甚至接口)的唯一方法是使用import/require

注意:

为了获得--out的优点,即通过///<reference +进行简单类型导入仍然允许更简单的JS调试,grunt-ts支持为您生成amd-loader:https://github.com/grunt-ts/grunt-ts#advantage-of-using-amdloader-option