Node.js TypeScript:What';这是“什么?”;对",`节点11的目标?
TypeScript的目标配置有许多值,如Node.js TypeScript:What';这是“什么?”;对",`节点11的目标?,node.js,typescript,Node.js,Typescript,TypeScript的目标配置有许多值,如esnext、es2015、es6等(非常混乱) NodeJs当前版本(11.11.0)支持JavaScript的许多新特性。在TypeScript上以esnext为目标是否可以?行吗 如果不是,那么在定位nodeJs 11.11.0时,正确的目标是什么 编辑: 由于@Seblor,我们知道esnext非常动态,TC39可以根据需要添加功能。它表示正在开发的下一个JavaScript版本(关于特性的约定) 精练的问题应该是:根据NodeJs(11.11.
esnext
、es2015
、es6
等(非常混乱)
NodeJs当前版本(11.11.0)支持JavaScript的许多新特性。在TypeScript上以esnext
为目标是否可以?行吗
如果不是,那么在定位nodeJs 11.11.0时,正确的目标是什么
编辑:
由于@Seblor,我们知道esnext
非常动态,TC39可以根据需要添加功能。它表示正在开发的下一个JavaScript版本(关于特性的约定)
精练的问题应该是:根据NodeJs(11.11.0)的当前版本和TypeScript(3.3)的当前版本,我们可以使用esnext
作为目标吗?看看,节点11.11.0中对ES2018的支持似乎已经满了,因此您应该能够毫无困难地将ES2018设置为目标
你可以通过使用或甚至是因为支撑看起来足够好来推动你的运气。但是,如果使用ESNext作为目标(如私有属性),我不知道typescript是否会使用尚未实现的功能
就个人而言,我会坚持ES2018,因为我认为没有必要推动ESNext。好的,所以答案是(像往常一样)视情况而定!
这取决于您计划使用的功能。tsconfig.json
和NodeJS版本上的TypeScript版本,target
在使用JavaScript功能之前,有两件事需要检查:
你必须看看,看看你的目标环境专栏,在我的例子中是。确保电池是绿色的。红色表示无法在此环境中运行此功能
确保可以使用TypeScript编译代码。如果可以使用TypeScript编译代码,那么就可以了。请注意,您不能指望。红色单元格表示编译后的代码不会在以前版本的JavaScript上运行
例如BigInt
:
带有目标的TypeScript:“esnext”
将编译(没有问题)带有bigint
的代码(支持单元格为红色),您可以在NodeJS 11上运行带有bigint的JavaScript代码
请注意,在左上角有ECMAScript
version组。根据TypeScript wiki,您可以降低到esnext
“es2018”
是节点10的正确映射,“es2019”
是节点12的正确映射。似乎没有记录节点的非LTS版本,但考虑到这些信息,我觉得“es2018”是最安全的目标。es2015和es6是一样的。esnext是撰写本文时的下一个版本。这里的更多细节:看起来esnext
是非常动态的,并且可以随时更改,但是TypeScript
对esnext
的支持是静态的(每个版本),在新版本的ECMAScript发布后,esnext将“更改”。@RTW我实际上是在第3阶段(当时:)进行的。使用Stage 2(或更低版本)没有实际意义,因为它们可能会发生更改,因此在TypeScript wiki上创建该信息。谢谢