tsconfig.json各項配置注解


{
  "compilerOptions": {
    /* Basic Options */
    "target": "es5",                          /* target用於指定編譯之后的版本目標 version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
    "module": "commonjs",                     /* 用來指定要使用的模塊標准: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
    "lib": [
      "es6",
      "dom"
    ],                             /* lib用於指定要包含在編譯中的庫文件,這個我們在前面的課程中講過一點,如果你要使用一些ES6的新語法,你需要引入ES6這個庫,或者也可以寫ES2015。 */
    // "allowJs": true,                       /* allowJs設置的值為true或false,用來指定是否允許編譯JS文件,默認是false,即不編譯JS文件。 */
    // "checkJs": true,                       /* checkJs的值為true或false,用來指定是否檢查和報告JS文件中的錯誤,默認是false。 */
    // "jsx": "preserve",                     /* 指定jsx代碼用於的開發環境: '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": "./",                       /* outFile用於指定將輸出文件合並為一個文件,他的值為一個文件路徑名,比如設置為"./dist/main.js",則輸出的文件為一個main.js文件。但是要注意,只有設置module的值為amd和system模塊時才支持這個配置。 */
    // "outDir": "./",                        /* outDir用來指定輸出文件夾,值為一個文件夾路徑字符串,輸出的文件都將放置在這個文件夾。 */
    // "rootDir": "./",                       /* 用來指定編譯文件的根目錄,編譯器會在根目錄查找入口文件,如果編譯器發現以rootDir的值作為根目錄查找入口文件並不會把所有文件加載進去的話會報錯,但是不會停止編譯。 */
    // "composite": true,                     /* 是否編譯構建引用項目 */
    // "removeComments": true,                /* removeComments值為true或false,用於指定是否將編譯后的文件中的注釋刪掉,設為true的話即刪掉注釋,默認為false。 */
    // "noEmit": true,                        /* 不生成編譯文件,這個一般很少用了。 */
    // "importHelpers": true,                 /* importHelpers的值為true或false,指定是否引入tslib里的輔助工具函數,默認為false。 */
    // "downlevelIteration": true,            /* 當target為“ES5”或“ES3”時,為“for-of”、“spread”和“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或false,這個配置項我們在前面課程講過了,當設為true時,null和undefined值不能賦值給非這兩種類型的值,別的類型的值也不能賦給他們, 除了any類型,還有個例外就是undefined可以賦值給void類型。 */
    // "strictFunctionTypes": true,           /* strictFunctionTypes的值為true或false,用來指定是否使用函數參數雙向協變檢查。還記得我們講類型兼容性的時候講過函數參數雙向協變的這個例子: */
    // "strictBindCallApply": true,           /* strictBindCallApply的值為true或false,設為true后會對bind、call和apply綁定的方法的參數的檢測是嚴格檢測的 */
    // "strictPropertyInitialization": true,  /* strictPropertyInitialization的值為true或false,設為true后會檢查類的非undefined屬性是否已經在構造函數里初始化,如果要開啟這項,需要同時開啟strictNullChecks,默認為false。 */
    // "noImplicitThis": true,                /* 當 this表達式的值為 any類型的時候,生成一個錯誤。 */
    // "alwaysStrict": true,                  /* alwaysStrict的值為true或false,指定始終以嚴格模式檢查每個模塊,並且在編譯之后的JS文件中加入"use strict"字符串,用來告訴瀏覽器該JS為嚴格模式。 */

    /* Additional Checks */
    // "noUnusedLocals": true,                /* noUnusedLocals的值為true或false,用於檢查是否有定義了但是沒有使用的變量,對於這一點的檢測,使用ESLint可以在你書寫代碼的時候做提示,你可以配合使用。他的默認值為false */
    // "noUnusedParameters": true,            /* noUnusedParameters的值為true或false,用於檢查是否有在函數體中沒有使用的參數,這個也可以配合ESLint來做檢查,他默認是false。 */
    // "noImplicitReturns": true,             /* noImplicitReturns的值為true或false,用於檢查函數是否有返回值,設為true后,如果函數沒有返回值則會提示,默認為false。 */
    // "noFallthroughCasesInSwitch": true,    /* noFallthroughCasesInSwitch的值為true或false,用於檢查switch中是否有case沒有使用break跳出switch,默認為false。 */

    /* Module Resolution Options */
    // "moduleResolution": "node",            /* moduleResolution用於選擇模塊解析策略,有"node"和"classic"兩種類型,我們在講模塊解析的時候已經講過了。 */
    // "baseUrl": ".",                       /* baseUrl用於設置解析非相對模塊名稱的基本目錄,相對模塊不會受baseUrl的影響。 */
    // "paths": {
    //   "*": ["node_modules/@types", "src/typings"]
    // },                           /* paths用於設置模塊名到基於baseUrl的路徑映射 */
    // "rootDirs": [
    //   "src/module",
    //   "src/core"
    // ],                        /* rootDirs可以指定一個路徑列表,在構建時編譯器會將這個路徑列表中的路徑中的內容都放到一個文件夾中. */
    // "typeRoots": [],                       /* typeRoots用來指定聲明文件或文件夾的路徑列表,如果指定了此項,則只有在這里列出的聲明文件才會被加載。 */
    // "types": [],                           /* types用來指定需要包含的模塊,只有在這里列出的模塊的聲明文件才會被加載進來。 */
    // "allowSyntheticDefaultImports": true,  /* allowSyntheticDefaultImports的值為true或false,用來指定允許從沒有默認導出的模塊中默認導入。 */
    "esModuleInterop": true,                   /* 通過為導入內容創建命名空間,實現CommonJS和ES模塊之間的互操作性 */
    // "preserveSymlinks": true,              /* 不把符號鏈接解析為其真實路徑,具體可以了解下webpack和nodejs的symlink相關知識 */

    /* Source Map Options */
    // "sourceRoot": "",                      /* sourceRoot用於指定調試器應該找到TypeScript文件而不是源文件位置,這個值會被寫進.map文件里。 */
    // "mapRoot": "",                         /* mapRoot用於指定調試器找到映射文件而非生成文件的位置,指定map文件的根路徑,該選項會影響.map文件中的sources屬性。 */
    // "inlineSourceMap": true,               /* inlineSourceMap值為true或false,指定是否將map文件的內容和js文件編譯在一個同一個js文件中,如果設為true,則map的內容會以//# sourceMappingURL=然后接base64字符串的形式插入在js文件底部。 */
    // "inlineSources": true,                 /* inlineSources的值是true或false,用於指定是否進一步將.ts文件的內容也包含到輸出文件中。 */

    /* Experimental Options */
    "experimentalDecorators": true,        /* experimentalDecorators的值是true或false,用於指定是否啟用實驗性的裝飾器特性 */
    // "emitDecoratorMetadata": true,         /* emitDecoratorMetadata的值為true或false,用於指定是否為裝飾器提供元數據支持,關於元數據,也是ES6的新標准,可以通過Reflect提供的靜態方法獲取元數據,如果需要使用Reflect的一些方法,需要引入ES2015.Reflect這個庫 */
  },
  // "files": [], // files可以配置一個數組列表,里面包含指定文件的相對或絕對路徑,編譯器在編譯的時候只會編譯包含在files中列出的文件。如果不指定,則取決於有沒有設置include選項,如果沒有include選項,則默認會編譯根目錄以及所有子目錄中的文件。這里列出的路徑必須是指定文件,而不是某個文件夾,而且不能使用* ? **/ 等通配符
  // "include": [], // include也可以指定要編譯的路徑列表,但是和files的區別在於,這里的路徑可以是文件夾,也可以是文件,可以使用相對和絕對路徑,而且可以使用通配符,比如"./src"即表示要編譯src文件夾下的所有文件以及子文件夾的文件。
  // "exclude": [], // exclude表示要排除的、不編譯的文件,他也可以指定一個列表,規則和include一樣,可以是文件可以是文件夾,可以是相對路徑或絕對路徑,可以使用通配符。
  // "extends": "", // extends可以通過指定一個其他的tsconfig.json文件路徑,來繼承這個配置文件里的配置,繼承來的文件的配置會覆蓋當前文件定義的配置。TS在3.2版本開始,支持繼承一個來自Node.js包的tsconfig.json配置文件.
  // "compileOnSave": true // compileOnSave的值是true或false,如果設為true,在我們編輯了項目中文件保存的時候,編輯器會根據tsconfig.json的配置重新生成文件,不過這個要編輯器支持。
  // "references": [] // 一個對象數組,指定要引用的項目
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM