亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Typescript tsconfig.json的配置詳情

 更新時間:2023年02月16日 10:42:24   作者:Bigger  
這篇文章主要為大家介紹了Typescript tsconfig.json的配置詳情示例 ,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景

當我們在做 typescript 相關的項目時,總是不可避免的要配置 ts,但是每個配置項到底代表什么意思,以及我們可能需要哪些配置項呢?每次去查官網(wǎng)、查相關資料,感覺都比較費時費力。所以直接就把所有配置都整理出來,當作一個“字典”來用,這樣就輕松了許多,不知道對大家有幫助嗎?

配置詳情

{
  "compilerOptions": {
    /* Basic Options */
    "target": "es5" /* target用于指定編譯之后的版本目標: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
    "module": "commonjs" /* 用來指定要使用的模塊標準: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
    "lib": ["es6", "dom"] /* lib用于指定要包含在編譯中的庫文件 */,
    "allowJs": true,                       /* allowJs設置的值為true或false,用來指定是否允許編譯js文件,默認是false,即不編譯js文件 */
    "checkJs": true,                       /* checkJs的值為true或false,用來指定是否檢查和報告js文件中的錯誤,默認是false */
    "jsx": "preserve",                     /* 指定jsx代碼用于的開發(fā)環(huán)境: 'preserve', 'react-native', or 'react'. */
    "declaration": true,                   /* declaration的值為true或false,用來指定是否在編譯的時候生成相應的".d.ts"聲明文件。如果設為true,編譯每個ts文件之后會生成一個js文件和一個聲明文件。但是declaration和allowJs不能同時設為true */
    "declarationMap": true,                /* 值為true或false,指定是否為聲明文件.d.ts生成map文件 */
    "sourceMap": true,                     /* sourceMap的值為true或false,用來指定編譯時是否生成.map文件 */
    "outFile": "./dist/main.js",                       /* outFile用于指定將輸出文件合并為一個文件,它的值為一個文件路徑名。比如設置為"./dist/main.js",則輸出的文件為一個main.js文件。但是要注意,只有設置module的值為amd和system模塊時才支持這個配置 */
    "outDir": "./dist",                        /* outDir用來指定輸出文件夾,值為一個文件夾路徑字符串,輸出的文件都將放置在這個文件夾 */
    "rootDir": "./",                       /* 用來指定編譯文件的根目錄,編譯器會在根目錄查找入口文件,如果編譯器發(fā)現(xiàn)以rootDir的值作為根目錄查找入口文件并不會把所有文件加載進去的話會報錯,但是不會停止編譯 */
    "composite": true,                     /* 是否編譯構建引用項目  */
    "removeComments": true,                /* removeComments的值為true或false,用于指定是否將編譯后的文件中的注釋刪掉,設為true的話即刪掉注釋,默認為false */
    "noEmit": true,                        /* 不生成編譯文件,這個一般比較少用 */
    "importHelpers": true,                 /* importHelpers的值為true或false,指定是否引入tslib里的輔助工具函數(shù),默認為false */
    "downlevelIteration": true,            /* 當target為'ES5' or 'ES3'時,為'for-of', spread, and destructuring'中的迭代器提供完全支持 */
    "isolatedModules": true,               /* isolatedModules的值為true或false,指定是否將每個文件作為單獨的模塊,默認為true,它不可以和declaration同時設定 */
    /* Strict Type-Checking Options */
    "strict": true /* strict的值為true或false,用于指定是否啟動所有類型檢查,如果設為true則會同時開啟下面這幾個嚴格類型檢查,默認為false */,
    "noImplicitAny": true,                 /* noImplicitAny的值為true或false,如果我們沒有為一些值設置明確的類型,編譯器會默認認為這個值為any,如果noImplicitAny的值為true的話。則沒有明確的類型會報錯。默認值為false */
    "strictNullChecks": true,              /* strictNullChecks為true時,null和undefined值不能賦給非這兩種類型的值,別的類型也不能賦給他們,除了any類型。還有個例外就是undefined可以賦值給void類型 */
    "strictFunctionTypes": true,           /* strictFunctionTypes的值為true或false,用于指定是否使用函數(shù)參數(shù)雙向協(xié)變檢查 */
    "strictBindCallApply": true,           /* 設為true后會對bind、call和apply綁定的方法的參數(shù)的檢測是嚴格檢測的 */
    "strictPropertyInitialization": true,  /* 設為true后會檢查類的非undefined屬性是否已經(jīng)在構造函數(shù)里初始化,如果要開啟這項,需要同時開啟strictNullChecks,默認為false */
   "noImplicitThis": true,                /* 當this表達式的值為any類型的時候,生成一個錯誤 */
    "alwaysStrict": true,                  /* alwaysStrict的值為true或false,指定始終以嚴格模式檢查每個模塊,并且在編譯之后的js文件中加入"use strict"字符串,用來告訴瀏覽器該js為嚴格模式 */
    /* Additional Checks */
    "noUnusedLocals": true,                /* 用于檢查是否有定義了但是沒有使用的變量,對于這一點的檢測,使用eslint可以在你書寫代碼的時候做提示,你可以配合使用。它的默認值為false */
    "noUnusedParameters": true,            /* 用于檢查是否有在函數(shù)體中沒有使用的參數(shù),這個也可以配合eslint來做檢查,默認為false */
    "noImplicitReturns": true,             /* 用于檢查函數(shù)是否有返回值,設為true后,如果函數(shù)沒有返回值則會提示,默認為false */
    "noFallthroughCasesInSwitch": true,    /* 用于檢查switch中是否有case沒有使用break跳出switch,默認為false */
    /* Module Resolution Options */
    "moduleResolution": "node",            /* 用于選擇模塊解析策略,有'node'和'classic'兩種類型' */
    "baseUrl": "./",                       /* baseUrl用于設置解析非相對模塊名稱的基本目錄,相對模塊不會受baseUrl的影響 */
    "paths": {},                           /* 用于設置模塊名稱到基于baseUrl的路徑映射 */
    "rootDirs": [],                        /* rootDirs可以指定一個路徑列表,在構建時編譯器會將這個路徑列表中的路徑的內容都放到一個文件夾中 */
    "typeRoots": [],                       /* typeRoots用來指定聲明文件或文件夾的路徑列表,如果指定了此項,則只有在這里列出的聲明文件才會被加載 */
    "types": [],                           /* types用來指定需要包含的模塊,只有在這里列出的模塊的聲明文件才會被加載進來 */
    "allowSyntheticDefaultImports": true,  /* 用來指定允許從沒有默認導出的模塊中默認導入 */
    "esModuleInterop": true /* 通過為導入內容創(chuàng)建命名空間,實現(xiàn)CommonJS和ES模塊之間的互操作性 */,
    "preserveSymlinks": true,              /* 不把符號鏈接解析為其真實路徑,具體可以了解下webpack和nodejs的symlink相關知識 */
    /* Source Map Options */
    "sourceRoot": "",                      /* sourceRoot用于指定調試器應該找到TypeScript文件而不是源文件位置,這個值會被寫進.map文件里 */
    "mapRoot": "",                         /* mapRoot用于指定調試器找到映射文件而非生成文件的位置,指定map文件的根路徑,該選項會影響.map文件中的sources屬性 */
    "inlineSourceMap": true,               /* 指定是否將map文件的內容和js文件編譯在同一個js文件中,如果設為true,則map的內容會以//# sourceMappingURL=然后拼接base64字符串的形式插入在js文件底部 */
    "inlineSources": true,                 /* 用于指定是否進一步將.ts文件的內容也包含到輸入文件中 */
    /* Experimental Options */
    "experimentalDecorators": true /* 用于指定是否啟用實驗性的裝飾器特性 */
    "emitDecoratorMetadata": true,         /* 用于指定是否為裝飾器提供元數(shù)據(jù)支持,關于元數(shù)據(jù),也是ES6的新標準,可以通過Reflect提供的靜態(tài)方法獲取元數(shù)據(jù),如果需要使用Reflect的一些方法,需要引入ES2015.Reflect這個庫 */
  }
  "files": [], // files可以配置一個數(shù)組列表,里面包含指定文件的相對或絕對路徑,編譯器在編譯的時候只會編譯包含在files中列出的文件,如果不指定,則取決于有沒有設置include選項,如果沒有include選項,則默認會編譯根目錄以及所有子目錄中的文件。這里列出的路徑必須是指定文件,而不是某個文件夾,而且不能使用* ? **/ 等通配符
  "include": [],  // include也可以指定要編譯的路徑列表,但是和files的區(qū)別在于,這里的路徑可以是文件夾,也可以是文件,可以使用相對和絕對路徑,而且可以使用通配符,比如"./src"即表示要編譯src文件夾下的所有文件以及子文件夾的文件
  "exclude": [],  // exclude表示要排除的、不編譯的文件,它也可以指定一個列表,規(guī)則和include一樣,可以是文件或文件夾,可以是相對路徑或絕對路徑,可以使用通配符
  "extends": "",   // extends可以通過指定一個其他的tsconfig.json文件路徑,來繼承這個配置文件里的配置,繼承來的文件的配置會覆蓋當前文件定義的配置。TS在3.2版本開始,支持繼承一個來自Node.js包的tsconfig.json配置文件
  "compileOnSave": true,  // compileOnSave的值是true或false,如果設為true,在我們編輯了項目中的文件保存的時候,編輯器會根據(jù)tsconfig.json中的配置重新生成文件,不過這個要編輯器支持
  "references": [],  // 一個對象數(shù)組,指定要引用的項目
}

include/exclude/files 三者的關系

首先我們明確一點,exclude 是有默認值的,如果我們沒有設置 exclude ,那其默認值為 node_modules 、bower_components、jspm_packages 和編譯選項 outDir 指定的路徑。

還有一點,files 的優(yōu)先級是最高的,比如我們在 files 中指定了一些文件,但是又在 exclude 中把它們排除了,這是無效的,因為 files 的優(yōu)先級更高,這些文件依然會被編譯,但是如果 include 中包含,那么依然會被排除,由此可見這三者的優(yōu)先級如下:

files > exclude > include

如果 files 和 include 都未設置,那么除了 exclude 排除的文件,編譯器會默認包含路徑下的所有 TS 文件。

typeRoots & types

typeRoots: 默認所有可見的 "@types" 包會在編譯過程中被包含進來,node_modules/@types 文件夾下以及它們子文件夾下的所有包都是可見的,但是如果指定了typeRoots,只有typeRoots下面的包才會被包含進來

types: 如果指定了types,只有被列出來的包才會被包含進來,比如:

{
  "compilerOptions": {
       "types" : ["node", "lodash", "express"]
  }
}

以上就是Typescript tsconfig.json的配置詳情的詳細內容,更多關于Typescript tsconfig.json配置的資料請關注腳本之家其它相關文章!

相關文章

  • 基于tsup打包TypeScript實現(xiàn)過程

    基于tsup打包TypeScript實現(xiàn)過程

    這篇文章主要為大家介紹了基于tsup打包TypeScript實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • TypeScript逆變之條件推斷和泛型的應用示例詳解

    TypeScript逆變之條件推斷和泛型的應用示例詳解

    這篇文章主要為大家介紹了TypeScript逆變之條件推斷和泛型的應用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • TypeScript數(shù)據(jù)結構鏈表結構?LinkedList教程及面試

    TypeScript數(shù)據(jù)結構鏈表結構?LinkedList教程及面試

    這篇文章主要為大家介紹了TypeScript數(shù)據(jù)結構鏈表結構?LinkedList教程及面試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • TypeScript使用noImplicitAny實戰(zhàn)解析

    TypeScript使用noImplicitAny實戰(zhàn)解析

    這篇文章主要為大家介紹了TypeScript使用noImplicitAny實戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 數(shù)據(jù)結構Typescript之哈希表實現(xiàn)詳解

    數(shù)據(jù)結構Typescript之哈希表實現(xiàn)詳解

    這篇文章主要為大家介紹了數(shù)據(jù)結構Typescript之哈希表實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Typescript?extends?關鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析

    Typescript?extends?關鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析

    這篇文章主要介紹了Typescript?extends?關鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Typescript tsconfig.json的配置詳情

    Typescript tsconfig.json的配置詳情

    這篇文章主要為大家介紹了Typescript tsconfig.json的配置詳情示例 ,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • postman數(shù)據(jù)加解密實現(xiàn)APP登入接口模擬請求

    postman數(shù)據(jù)加解密實現(xiàn)APP登入接口模擬請求

    對于Postman的使用,一般情況下只要發(fā)發(fā)確定的請求與參數(shù)就可以的了,然而,在使用的時候,尤其是接口測試時,請求接口的設計里面都有數(shù)據(jù)加密,參數(shù)驗簽,返回數(shù)據(jù)也有進行加密的,這個時候就需要使用一些腳本做處理,模擬app登入請求的操作
    2021-08-08
  • Three.js?粗糙度貼圖與金屬度貼圖使用介紹

    Three.js?粗糙度貼圖與金屬度貼圖使用介紹

    這篇文章主要為大家介紹了Three.js?粗糙度貼圖與金屬度貼圖使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • ThreeJS?入門如何渲染出第一個3D圖形

    ThreeJS?入門如何渲染出第一個3D圖形

    這篇文章主要為大家介紹了ThreeJS?入門之如何渲染出第一個3D圖形實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論