typescript-1.tsconfig.json

TypeScript 類型體操姿勢(shì)合集

1、安裝typescript
npm i -g typescript
2、創(chuàng)建一個(gè) tsconfig.json 文件
tsc --init
3、tsconfig.json詳解

作?:
?于標(biāo)識(shí) TypeScript 項(xiàng)?的根路徑;
?于配置 TypeScript 編譯器;
?于指定編譯的?件。
重要字段:
files - 設(shè)置要編譯的文件的名稱;
include - 設(shè)置需要進(jìn)行編譯的文件,支持路徑模式匹配;例如:"include": ["src//.ts", "src//.d.ts", "src//.tsx", "src//.vue"],
exclude - 設(shè)置無需進(jìn)行編譯的文件,支持路徑模式匹配;
compilerOptions - 設(shè)置與編譯流程相關(guān)的選項(xiàng)。

{
  "compilerOptions": {
  
    /* 基本選項(xiàng) */
    "target": "es5",                       // 指定 ECMAScript 目標(biāo)版本: 'ES3' (default), 'ES5', 'ES6'/'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'
    "module": "commonjs",                  // 指定使用模塊: 'commonjs', 'amd', 'system', 'umd' or 'es2015'
    "lib": [],                             // 指定要包含在編譯中的庫文件
    "allowJs": true,                       // 允許編譯 javascript 文件
    "checkJs": true,                       // 報(bào)告 javascript 文件中的錯(cuò)誤
    "jsx": "preserve",                     // 指定 jsx 代碼的生成: 'preserve', 'react-native', or 'react'
    "declaration": true,                   // 生成相應(yīng)的 '.d.ts' 文件
    "sourceMap": true,                     // 生成相應(yīng)的 '.map' 文件
    "outFile": "./",                       // 將輸出文件合并為一個(gè)文件
    "outDir": "./",                        // 指定輸出目錄
    "rootDir": "./",                       // 用來控制輸出目錄結(jié)構(gòu) --outDir.
    "removeComments": true,                // 刪除編譯后的所有的注釋
    "noEmit": true,                        // 不生成輸出文件
    "importHelpers": true,                 // 從 tslib 導(dǎo)入輔助工具函數(shù)
    "isolatedModules": true,               // 將每個(gè)文件做為單獨(dú)的模塊 (與 'ts.transpileModule' 類似).

    /* 嚴(yán)格的類型檢查選項(xiàng) */
    "strict": true,                        // 啟用所有嚴(yán)格類型檢查選項(xiàng)
    "noImplicitAny": true,                 // 在表達(dá)式和聲明上有隱含的 any類型時(shí)報(bào)錯(cuò)
    "strictNullChecks": true,              // 啟用嚴(yán)格的 null 檢查
    "noImplicitThis": true,                // 當(dāng) this 表達(dá)式值為 any 類型的時(shí)候,生成一個(gè)錯(cuò)誤
    "alwaysStrict": true,                  // 以嚴(yán)格模式檢查每個(gè)模塊,并在每個(gè)文件里加入 'use strict'

    /* 額外的檢查 */
    "noUnusedLocals": true,                // 有未使用的變量時(shí),拋出錯(cuò)誤
    "noUnusedParameters": true,            // 有未使用的參數(shù)時(shí),拋出錯(cuò)誤
    "noImplicitReturns": true,             // 并不是所有函數(shù)里的代碼都有返回值時(shí),拋出錯(cuò)誤
    "noFallthroughCasesInSwitch": true,    // 報(bào)告 switch 語句的 fallthrough 錯(cuò)誤。(即,不允許 switch 的 case 語句貫穿)

    /* 模塊解析選項(xiàng) */
    "moduleResolution": "node",            // 選擇模塊解析策略: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)
    "baseUrl": "./",                       // 用于解析非相對(duì)模塊名稱的基目錄
    "paths": {},                           // 模塊名到基于 baseUrl 的路徑映射的列表
    "rootDirs": [],                        // 根文件夾列表,其組合內(nèi)容表示項(xiàng)目運(yùn)行時(shí)的結(jié)構(gòu)內(nèi)容
    "typeRoots": [],                       // 包含類型聲明的文件列表
    "types": [],                           // 需要包含的類型聲明文件名列表
    "allowSyntheticDefaultImports": true,  // 允許從沒有設(shè)置默認(rèn)導(dǎo)出的模塊中默認(rèn)導(dǎo)入。

    /* Source Map Options */
    "sourceRoot": "./",                    // 指定調(diào)試器應(yīng)該找到 TypeScript 文件而不是源文件的位置
    "mapRoot": "./",                       // 指定調(diào)試器應(yīng)該找到映射文件而不是生成文件的位置
    "inlineSourceMap": true,               // 生成單個(gè) soucemaps 文件,而不是將 sourcemaps 生成不同的文件
    "inlineSources": true,                 // 將代碼與 sourcemaps 生成到一個(gè)文件中,要求同時(shí)設(shè)置了 --inlineSourceMap 或 --sourceMap 屬性

    /* 其他選項(xiàng) */
    "experimentalDecorators": true,        // 啟用裝飾器
    "emitDecoratorMetadata": true          // 為裝飾器提供元數(shù)據(jù)的支持
  }
}
4、ts具體內(nèi)容見typescript-2.ts基本使用
5、參考:https://juejin.cn/post/7018805943710253086
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容