javascript - es2018 对比 es2018.promise 对比 es2018.regexp

标签 javascript typescript

TypeScript 编译器有 following options对于 --lib cmd 行参数:

  • ES2018
  • ES2018.Promise
  • ES2018.RegExp

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

此外,从什么 TS 版本开始支持那些 ES2018 库?当我尝试将它们与 TS 2.6.2 一起使用时,它会抛出:

Error: tsconfig.json(16,13): error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', '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'.

最佳答案

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

What is the difference between them?

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

Should I use ES2018 or ES2018.Promise if I need Promisefinally() support only and do NOT care about other ES2018 features?

是的,您可以根据需要确定范围。但是,如果您包含更多内容,它不会增加生成的 JavaScript。

Since what TS version those ES2018 libs are supported?

如果您使用的目标本身不支持某个功能,您可以下载 (npm) 包到 Polyfill。它与 TS 版本没有直接关系。

关于javascript - es2018 对比 es2018.promise 对比 es2018.regexp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616100/

相关文章:

javascript - 如何检测矩形div下的textarea标签中是否有文本?

typescript - 防止函数调用中类型冲突

typescript - 如何从引用其他类型别名的类型别名中提取类型参数和类型参数?

node.js - TypeScript 中是否有等效的 require().default ?

javascript - 如果绑定(bind)是由 jquery 设置的,则两种方式绑定(bind)不起作用

javascript - jQuery 完整日历仅添加月份和日期的事件

java - 在 session 超时之前警告用户

arrays - typescript :对象数组的valueof字段

angular - 如何在 Ionic 3 中禁用模态动画?

javascript - 在 div 的 slideUp() 事件上切换类