标签:node target modules tsconfig json 设置 目标 Angular types
我新建了一个 Angular 应用,自动生成的 tsconfig.json 文件里,target 为 es2017,module 为 es2018.
而 Spartacus 应用里,target 仅为 es5:
现代浏览器支持所有 ES6 特性,所以 ES6 是一个不错的选择。如果您的代码部署到较旧的环境,您可以选择设置较低的目标,或者如果您的代码保证在较新的环境中运行,则可以选择设置更高的目标。
目标设置改变了哪些 JS 特性被降级,哪些保持不变。例如,如果目标是 ES5 或更低版本,箭头函数 () => this 将被转换为等效的函数表达式。
比如 Spartacus ng build 出来之后的 .js 文件里,所有的箭头函数被转换为普通的 function 用法:
更改目标也会更改 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/@types/jest 和 ./node_modules/@types/express。 node_modules/@types/* 下的其他包将不包含在内。
更多Jerry的原创文章,尽在:"汪子熙":
标签:node,target,modules,tsconfig,json,设置,目标,Angular,types 来源: https://www.cnblogs.com/sap-jerry/p/15706970.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。