首先安裝typescript
npm install typescript --save
tsconfig.json
1 { 2 "compilerOptions": { 3 "baseUrl": ".", // 工作根目錄 4 "rootDir": "src",// 用來指定編譯文件的根目錄,編譯器會在根目錄查找入口文件 5 "target": "es5", //target用於指定編譯之后的版本目標 6 "lib": [ 7 "esnext", 8 "es7", 9 "dom" 10 ], //編譯過程中需要引入的庫文件的列表。 11 "sourceMap": true, //生成相應的 .map文件。 12 "allowJs": true, //允許編譯javascript文件。 13 "skipLibCheck": true, //忽略所有的聲明文件( *.d.ts)的類型檢查。 14 "strictNullChecks": false, //在嚴格的 null檢查模式下, null和 undefined值不包含在任何類型里,只允許用它們自己和 any來賦值 15 "esModuleInterop": true, //使 typescript 來兼容所有模塊方案的導入。 16 "suppressImplicitAnyIndexErrors": true, //阻止 --noImplicitAny對缺少索引簽名的索引對象報錯。查看 issue #1232了解詳情。 17 "allowSyntheticDefaultImports": true, //允許從沒有設置默認導出的模塊中默認導入。這並不影響代碼的輸出,僅為了類型檢查。 18 "strict": true, //啟用所有嚴格類型檢查選項。 19 "forceConsistentCasingInFileNames": true,//禁止對同一個文件的不一致的引用。 20 "noFallthroughCasesInSwitch": true, //報告switch語句的fallthrough錯誤。 21 "noImplicitReturns": false, //不是函數的所有返回路徑都有返回值時報錯。 22 "noImplicitThis": true, //當 this表達式的值為 any類型的時候,生成一個錯誤。 23 "noImplicitAny": false, //在表達式和聲明上有隱含的 any類型時報錯 24 "importHelpers": false, //從 tslib 導入輔助工具函數 25 "module": "esnext", //指定生成哪個模塊系統代碼 26 "moduleResolution": "node", //決定如何處理模塊。或者是"Node"對於 27 "resolveJsonModule": true, // 包含導入的模塊.json的擴展。 28 "isolatedModules": false, //將每個文件作為單獨的模塊 29 "emitDecoratorMetadata": true, //給源碼里的裝飾器聲明加上設計類型元數據。 30 "experimentalDecorators": true, //啟用實驗性的ES裝飾器。 31 "jsx": "react-jsx", //在 .tsx文件里支持JSX: "React"或 "Preserve"。查看 JSX。 32 "paths": { 33 "@/*": ["src/*"], 34 }, 35 }, 36 "include": [ 37 "src/**/*" 38 ], //編譯時需要包含 39 "exclude": [ 40 "node_modules", 41 "build", 42 "scripts", 43 "src/setupTests.ts" 44 ] //剔除的文件夾 45 }
如果你在webpack里面做了縮小檢索范圍@->src ,ts里面也要做相應的處理,否則會報錯