类型记录的target配置有许多值,如esnext、es2015、es6等(非常令人困惑)
NodeJs当前版本(11.11.0)支持JavaScript的许多新特性。在esnext上瞄准TypeScript可以吗?它能用吗?
如果不是,当针对NodeJS11.0时,正确的target是什么?
编辑:
由于@Seblor,我们知道esnext是非常动态的,TC39可以添加他们认为合适的特性。它代表了正在开发的JavaScript的下一个版本(关于商定特性)。
精炼的问题应该是:根据NodeJs的当前版本(11.11.0)和当前版本的TypeScript (3.3),我们可以使用esnext作为target吗?
发布于 2019-03-11 10:50:59
好的,所以答案是(和往常一样)依赖于!这取决于您计划使用的特性。TypeScript版本、tsconfig.json上的target版本和NodeJS版本。
在使用JavaScript特性之前,有两件事需要检查:
例如,BigInt
TypeScript with target: "esnext"将用bigint编译代码(没有问题)(支持单元是红色的),您可以在NodeJS 11上运行带有bigint的JavaScript代码
请注意,在左上角,有ECMAScript版本组。你可以比esnext低
发布于 2020-03-18 21:34:44
基于节点-目标映射 on TypeScript wiki,"es2018"是Node 10的正确映射,"es2019"是Node 12的正确映射。似乎没有记录Node的非LTS版本,但考虑到这些信息,我觉得"es2018"是最安全的目标。
发布于 2019-03-11 10:20:01
从node.green的角度来看,Node 11.11.0中的ES2018支持似乎是满的,因此您应该能够毫无问题地将ES2018设置为目标。
您可以通过使用ES2019甚至ESNext来推卸运气,因为支持看起来已经足够好了。但是,如果您使用ESNext作为目标(比如私有属性),我不知道类型记录是否会使用尚未实现的特性。
就我个人而言,我会坚持ES2018,因为我认为没有必要推动ESNext。
https://stackoverflow.com/questions/55098997
复制相似问题