当前位置: 首页 > Web前端 > HTML5

关于Angular应用程序tsconfig.json中的目标属性

时间:2023-04-05 16:20:17 HTML5

我创建了一个新的Angular应用程序。在自动生成的tsconfig.json文件中,target为es2017,module为es2018。在Spartacus应用中,目标只有es5:现代浏览器支持所有ES6特性,因此ES6是一个不错的选择。如果您的代码部署到较旧的环境,您可以选择设置较低的目标,或者如果您的代码保证在较新的环境中运行,则可以选择设置较高的目标。目标设置更改哪些JS功能被降级,哪些保持不变。例如,箭头函数()=>如果目标为ES5或更低版本,这将被转换为等效的函数表达式。例如,在Spartacusngbuild出来后的.js文件中,所有的箭头函数都被转换为正常的函数用法:改变target也会改变lib的默认值。您可以根据需要“混合和匹配”目标和库设置,但为了方便起见,您也可以只设置目标。对于像Node这样的开发人员平台,存在目标基线,具体取决于平台类型及其版本。您可以在tsconfig/bases找到一组社区组织的TSConfig,其中包含常见平台及其版本的配置。特殊的ESNext值是指您的TypeScript版本支持的最高版本。应谨慎使用此设置,因为它在不同的TypeScript版本之间并不意味着相同的事情,并且会使升级变得更难预测。默认情况下,所有可见的“@types”包都包含在您的编译中。任何封闭文件夹的node_modules/@types中的包都被认为是可见的。例如,这意味着./node_modules/@types/、../node_modules/@types/、../../node_modules/@types/等中的包。如果指定了类型,则仅包含列出的包在全球范围内。例如:{"compilerOptions":{"types":["node","jest","express"]}}这个tsconfig.json文件将只包含./node_modules/@types/node,./node_modules/@类型/jest和./node_modules/@types/express。node_modules/@types/*下的其他包将不包括在内。更多Jerry原创文章在这里:《王子熙》: