首先安装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里面也要做相应的处理,否则会报错