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ù)的支持
}
}