关于 Angular 应用 tsconfig.json 中的 target 属性
我新建了一個 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的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的关于 Angular 应用 tsconfig.json 中的 target 属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水泥地铺地板革的技巧有哪些
- 下一篇: 洗衣机怎么拆开清洗 清洗后怎么安装