Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Typescript 2.7.2中编写Common.js模块-编译问题_Javascript_Node.js_Typescript - Fatal编程技术网

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

Javascript 在Typescript 2.7.2中编写Common.js模块-编译问题,javascript,node.js,typescript,Javascript,Node.js,Typescript,我对Typescript和Javascript也是完全陌生的,所以这无疑是个棘手的问题。我正在看一些关于编写模块的Typescript 2.0教程。在typescript中,作者描述了ES6模块的导入/导出方法,以及CommonJS、AMD和其他导入/导出方法 然而,在我的tsconfig.json中,似乎可以指定编译时要使用的模块处理程序:AMD、CommonJS等 因此,我的困惑是,我是否可以使用标准ES6语句和import{}…,编写导入/导出,然后在编译时将它们转换为适当的CommonJ

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

然而,在我的
tsconfig.json
中,似乎可以指定编译时要使用的模块处理程序:AMD、CommonJS等

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

我可以用标准ES6语句编写导入/导出吗 导入{}…,然后将它们转换为相应的CommonJS 还是编译时的RequireJS语法

没错,
import
export
是TypeScript语言的一部分,它们实际上与ES6中的
import
export
完全相同

TypeScript将根据
tsconfig.json中
module
target
设置的组合编译它们-如果
target
es6
或更高版本(或者如果
module
本身是
es6
),则
导入
导出
将保留在生成的javascript中,否则,它们将转换为AMD或commonJS语法

我可以用标准ES6语句编写导入/导出吗 导入{}…,然后将它们转换为相应的CommonJS 还是编译时的RequireJS语法

没错,
import
export
是TypeScript语言的一部分,它们实际上与ES6中的
import
export
完全相同


TypeScript将根据
tsconfig.json中
module
target
设置的组合编译它们-如果
target
es6
或更高版本(或者如果
module
本身是
es6
),则
导入
导出
将保留在生成的javascript中,否则,它们将被转换为AMD或commonJS语法。

是的,它影响生成的代码,而不是您应该如何编写代码

作为学习练习,我建议查看每个值的输出:
None
CommonJS
AMD
System
UMD
ES6
ES2015
ESNext

请注意,某些编译器选项在某些配置中不可用:

  • outFile
    只能与
    AMD
    System
  • 但是,当瞄准
    ES5
    或更低级别时,可以使用
    ES6
    /
    ES2015

是的,它影响生成的代码,而不是您应该如何编写代码

作为学习练习,我建议查看每个值的输出:
None
CommonJS
AMD
System
UMD
ES6
ES2015
ESNext

请注意,某些编译器选项在某些配置中不可用:

  • outFile
    只能与
    AMD
    System
  • 但是,当瞄准
    ES5
    或更低级别时,可以使用
    ES6
    /
    ES2015

好的,太好了。哇,这让我困惑不已。谢谢你的帮助,很好。哇,这让我困惑不已。感谢您的帮助。不确定您所说的“ES6和ES2015只能在针对ES5或更低版本时使用”是什么意思。这与此无关。还有“ES6===ES2015”对不起,我的意思是写“可能被使用”。我已经更新了我的答案。这更好,但仍然不太正确。
--target
--module
选项根本不相互依赖,但这使它们听起来像是相互依赖的。此外,es6和es2015在字面上是相同的,因此您不应该将它们单独列出,好像它们有不同的格式。只是命名法改变了。只需将其称为es2015,因为这是官方名称。想到
--目标es3--模块esnext
肯定会让人困惑,但这是完全可能的。不确定“ES6和es2015只能在目标ES5或更低版本时使用”。这与此无关。还有“ES6===ES2015”对不起,我的意思是写“可能被使用”。我已经更新了我的答案。这更好,但仍然不太正确。“code>--target
--模块
选项根本不相互依赖,但这使听起来像它们一样。此外,es6和es2015在字面上是相同的,因此您不应该将它们单独列出,好像它们有不同的格式。只是命名法改变了。只需将其称为es2015,因为这是官方名称。想到
--目标es3--模块esnext
肯定会让人困惑,但这是完全可能的。