TypeScript编译选项:模块与目标

时间:2016-09-14 14:28:32

标签: typescript typescript1.8

尝试对模块和目标有一些基本的了解。

我想知道典型的tsconfig.json

中模块和目标编译选项之间的区别
{
    "compilerOptions": {
        "module": "es6",
        "sourceMap": true,
        "target": "es6"
    }
}

如果我提供以下选项会发生什么:

模块:commonjs,target:es6

模块:es6,target:commonjs

模块:commonjs,target:commonjs

3 个答案:

答案 0 :(得分:1)

更详细的解释如下:Understanding "target" and "module" in tsconfig

另请参阅:Understanding "target" and "module" in tsconfig

以下是文档on compiler options的引用:

  

<强> - 目标

     

指定ECMAScript目标版本:&#39; es3&#39; (默认),&#39; es5&#39;或&#39; es6&#39;。

     

<强> - 模块

     

指定模块代码生成:&#39;无&#39;,&#39; commonjs&#39;,&#39; amd&#39;,&#39; system&#39;,&#39; umd&# 39;,&#39; es6&#39;或&#39; es2015&#39;。

     
      
  • 只有&#39; amd&#39;和&#39;系统&#39;可以与--outFile一起使用。
  •   
  • &#39; ES6&#39;和&#39; es2015&#39;在定位ES5或更低时,可以使用值。
  •   

答案 1 :(得分:0)

有两件不同的东西。 --target只是意味着您使用哪个版本的ECMAScriot进行编码。 --module只是意味着你正在使用哪个模块系统,例如commonjs用于Node或ES模块的所有支持它的模块系统。

答案 2 :(得分:0)

“目标”属性用于指定您的 TypeScript 代码最终将编译成的 JavaScript 版本。 “module”属性指定您编译的 (TS-->JS) 代码将使用的模块语法的类型。例如,如果将模块属性设置为“commonJS”,则编译后的代码将使用“require/module.exports”来导入/导出。但是,模块属性不会影响编译代码的其余部分。为清楚起见,请参考此答案:https://stackoverflow.com/a/61215252/8659116