es2018 vs es2018.promise vs es2018.regexp

时间:2018-04-02 17:48:43

标签: javascript typescript

TypeScript编译器具有--lib cmd行arg的following options

  • ES2018
  • ES2018.Promise
  • ES2018.RegExp

他们之间有什么区别?如果我只需要ES2018支持且不关心其他ES2018功能,我应该使用ES2018.Promise还是Promisefinally()

另外,既然TS版本支持那些ES2018个库?当我尝试在TS 2.6.2中使用它时,它会抛出:

  

错误:tsconfig.json(16,13):错误TS6046:' - lib'的参数选项   必须是:' es5',' es6',' es2015',' es7',' es2016',&# 39; es2017',' esnext',   ' dom',' dom.iterable',' webworker',' scripthost',' es2015.core',   ' es2015.collection',' es2015.generator',' es2015.iterable',   ' es2015.promise',' es2015.proxy',' es2015.reflect',' es2015.symbol',   ' es2015.symbol.wellknown',' es2016.array.include',' es2017.object',   ' es2017.sharedmemory',' es2017.string',' es2017.intl',   ' esnext.asynciterable'

1 个答案:

答案 0 :(得分:0)

lib选项仅为这些库提供输入。如果您指定ES2018,那么即使您定位到ES2015,也会输入ES2018。默认情况下,TypeScript根据您指定的目标设置一些库,但它允许您从2.0版开始手动添加更多类型。

  

他们之间有什么区别?

它们是不同功能系列的子集。

  

我应该使用ES2018还是ES2018.Promise如果我需要Promisefinally()   仅支持并且不关心其他ES2018功能?

是的,您可以满足您的需求。但是,如果包含更多内容,则不会增加生成的JavaScript。

  

既然支持哪些TS版本的ES2018库?

如果您使用的是本机不支持该功能的目标,您可以将(npm)软件包下载到Polyfill。它与TS版本无直接关系。