TypeScript编译器具有--lib
cmd行arg的following options:
他们之间有什么区别?如果我只需要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'
答案 0 :(得分:0)
lib
选项仅为这些库提供输入。如果您指定ES2018
,那么即使您定位到ES2015,也会输入ES2018
。默认情况下,TypeScript根据您指定的目标设置一些库,但它允许您从2.0版开始手动添加更多类型。
他们之间有什么区别?
它们是不同功能系列的子集。
我应该使用ES2018还是ES2018.Promise如果我需要Promisefinally() 仅支持并且不关心其他ES2018功能?
是的,您可以满足您的需求。但是,如果包含更多内容,则不会增加生成的JavaScript。
既然支持哪些TS版本的ES2018库?
如果您使用的是本机不支持该功能的目标,您可以将(npm)软件包下载到Polyfill。它与TS版本无直接关系。