在Typescript 2.7.2中编写Common.js模块 - 编译问题

时间:2018-02-22 00:21:53

标签: javascript node.js typescript

我对Typescript和Javascript也是全新的,所以这无疑是一个noobie问题。我正在看一些关于编写模块的Typescript 2.0教程。在typescript documentation中,作者描述了ES6模块导入/导出方法,以及CommonJS,AMD和其他导入/导出方法。

但是,似乎在我的tsconfig.json中,我可以指定在编译时我想要使用哪个模块处理程序:AMD,CommonJS等。

所以我的困惑是,我可以使用带有import {}...的标准ES6语句编写导入/导出,然后在编译时将它们转换为适当的CommonJS或RequireJS语法吗?或者我是否需要在typescript中编写适当的CommonJS / RequireJS等语法,然后编译步骤将使用我生成的任何内容?

2 个答案:

答案 0 :(得分:2)

是的,它会影响生成的代码,而不会影响您编写代码的方式。

作为一项学习练习,我建议您查看每个值的输出:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>)** NoneCommonJSAMD,{{1} },SystemUMDES6

请注意,某些配置中没有某些编译器选项:

  • ES2015只能与ESNextoutFile
  • 一起使用
  • 但定位AMD或更低
  • 时,可能会使用System / ES6

答案 1 :(得分:1)

  

我可以使用标准ES6语句编写导入/导出   import {} ...,然后将它们转换为相应的CommonJS   或编译时的RequireJS语法?

确切地说,importexport是TypeScript语言的一部分,它们与ES6中的importexport几乎完全相同。

TypeScript将根据moduletargettsconfig.json设置的组合对其进行编译 - 如果targetes6或更高(或module 1}}本身为es6),importexport将保留在生成的javascript中,否则它们将转换为AMD或commonJS语法。