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/