1. {
    2. "compilerOptions": {
    3. /**************基础配置**************/
    4. /**************基础配置**************/
    5. /**************基础配置**************/
    6. /* 开启增量编译:TS 编译器在第一次编译的时候,会生成一个存储编译信息的文件,下一次编译的时候,会根据这个文件进行增量的编译,以此提高 TS 的编译速度 */
    7. // "incremental": true,
    8. /* 指定存储增量编译信息的文件位置 */
    9. // "tsBuildInfoFile": "./",
    10. /* 打印诊断信息 */
    11. // "diagnostics": true,
    12. /* 打印输出的文件 */
    13. // "listEmittedFiles": true,
    14. /* 打印编译的文件(包括引用的声明文件)*/
    15. // "listFiles": true,
    16. /* 指定 ECMAScript 的目标版本: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
    17. // "target": "es5",
    18. /* 指定模块代码的生成方式: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
    19. // "module": "commonjs",
    20. /* 指定要包含在编译中的库文件——引用类库——即申明文件,如果输出的模块方式是 es5,就会默认引入 "dom","es5","scripthost" */
    21. /* 如果在 TS 中想要使用一些 ES6 以上版本的语法,就需要引入相关的类库 */
    22. // "lib": [],
    23. /* 允许编译 JS 文件 */
    24. // "allowJs": true,
    25. /* 检查 JS 文件*/
    26. // "checkJs": true,
    27. /* 指定 JSX 代码生成的模式: 'preserve', 'react-native', or 'react'. */
    28. /* 'react' 模式下:TS 会直接把 jsx 编译成 js */
    29. /* 'preserve' 模式下:TS 不会把 jsx 编译成 js,会保留 jsx */
    30. // "jsx": "preserve",
    31. /**************声明文件相关配置**************/
    32. /**************声明文件相关配置**************/
    33. /**************声明文件相关配置**************/
    34. /* 生成相应的类型声明文件 —— '.d.ts' */
    35. // "declaration": true,
    36. /* 声明文件的输出路径 */
    37. // "declarationDir": "./d",
    38. /* 只生成声明文件,不生成 JS */
    39. // "emitDeclarationOnly": true,
    40. /* 声明文件目录,默认 node_modules/@types */
    41. // "typeRoots": [],
    42. /* 要导入的声明文件包,默认导入上面声明文件目录下的所有声明文件 */
    43. // "types": [],
    44. /* 将多个相互依赖的文件合并并且把编译后的内容输出到一个文件里
    45. * 可以用在产出 AMD 模块的场景中
    46. * "module":"amd" 时,当一个模块引入了另外一个模块,编译的时候会把这两个模块的编译结果合并到一个文件中
    47. */
    48. // "outFile": "./",
    49. /* 指定编译文件的输出目录 */
    50. // "outDir": "./out",
    51. /* 指定输入文件的根目录,用于控制输出目录的结构 */
    52. // "rootDir": "./",
    53. /* 启用项目编译 */
    54. // "composite": true,
    55. /* 输出的时候移除注释 */
    56. // "removeComments": true,
    57. /* 不输出文件 */
    58. // "noEmit": true,
    59. /* 发生错误时不输出文件 */
    60. // "noEmitOnError": true,
    61. /* 不生成 helper 函数,以前的话设置为 true 后,需要额外安装 ts-helpers */
    62. /* 类似于 babel ,会给每个文件都生成 helper 函数,会使得最终编译后的包的体积变大 */
    63. // "noEmitHelpers": true,
    64. /* 现在可以通过 tslib(TS 内置的库)引入 helper 函数,!!!文件必须是模块 !!! */
    65. /* 编译后自动引入 var tslib_1 = require("tslib") */
    66. // "importHelpers": true,
    67. /* 当目标是 ES5 或 ES3 的时候提供对 for-of、扩展运算符和解构赋值中对于迭代器的完整支持 */
    68. // "downlevelIteration": true,
    69. /* 把每一个文件转译成一个单独的模块 */
    70. // "isolatedModules": true,
    71. /**************严格检查配置**************/
    72. /**************严格检查配置**************/
    73. /**************严格检查配置**************/
    74. /* 开启所有的严格检查配置 */
    75. "strict": true,
    76. /* 不允许使用隐式的 any 类型 */
    77. // "noImplicitAny": true,
    78. /* 不允许把 null、undefined 赋值给其他类型变量 */
    79. // "strictNullChecks": true,
    80. /* 不允许函数参数双向协变 */
    81. // "strictFunctionTypes": true,
    82. /* 使用 bind/call/apply 时,严格检查函数参数类型 */
    83. // "strictBindCallApply": true,
    84. /* 类的实例属性必须初始化 */
    85. // "strictPropertyInitialization": true,
    86. /* 不允许 this 有隐式的 any 类型,即 this 必须有明确的指向*/
    87. // "noImplicitThis": true,
    88. /* 在严格模式下解析并且向每个源文件中注入 "use strict" */
    89. // "alwaysStrict": true,
    90. /**************额外的语法检查配置,这种检查交给 eslint 就行,没必要配置**************/
    91. /**************额外的语法检查配置,这种检查交给 eslint 就行,没必要配置**************/
    92. /**************额外的语法检查配置,这种检查交给 eslint 就行,没必要配置**************/
    93. /* 有未使用到的本地变量时报错 */
    94. // "noUnusedLocals": true,
    95. /* 有未使用到的函数参数时报错 */
    96. // "noUnusedParameters": true,
    97. /* 每个分支都要有返回值 */
    98. // "noImplicitReturns": true,
    99. /* 严格校验 switch-case 语法 */
    100. // "noFallthroughCasesInSwitch": true,
    101. /**************模块解析配置**************/
    102. /**************模块解析配置**************/
    103. /**************模块解析配置**************/
    104. /* 指定模块的解析策略: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)*/
    105. /* 若未指定,那么在使用了 --module AMD | System | ES2015 时的默认值为 Classic,其它情况时则为 Node */
    106. // "moduleResolution": "node",
    107. /* 在解析非绝对路径模块名的时候的基准路径 */
    108. // "baseUrl": "./",
    109. /* 基于 'baseUrl' 的路径映射集合 */
    110. // "paths": {},
    111. /* 将多个目录放在一个虚拟目录下,用于运行时 */
    112. /* 当自己编写的库和开发的代码都输出到一个目录下时,开发代码和库的位置不一样,开发代码引入库的路径就会不对 */
    113. // "rootDirs": [],
    114. // "rootDirs": ["src","out"],
    115. /* 允许 export = xxx 导出 ,并使用 import xxx form "module-name" 导入*/
    116. // "esModuleInterop": true,
    117. /* 当模块没有默认导出的时候,允许被别的模块默认导入,这个在代码执行的时候没有作用,只是在类型检查的时候生效 */
    118. // "allowSyntheticDefaultImports": true,
    119. /* 不要 symlinks 解析的真正路径 */
    120. // "preserveSymlinks": true,
    121. /* 允许在模块中以全局变量的方式访问 UMD 模块内容 */
    122. // "allowUmdGlobalAccess": true,
    123. /************** Source Map 配置**************/
    124. /************** Source Map 配置**************/
    125. /************** Source Map 配置**************/
    126. /* 指定 ts 文件位置 */
    127. // "sourceRoot": "",
    128. /* 指定 map 文件存放的位置 */
    129. // "mapRoot": "",
    130. /* 生成目标文件的 sourceMap */
    131. // "sourceMap": true,
    132. /* 将代码与sourcemaps生成到一个文件中,要求同时设置了--inlineSourceMap 或--sourceMap 属性*/
    133. // "inlineSources": true,
    134. /* 生成目标文件的 inline sourceMap —— 源文件和 sourcemap 文件在同一文件中,而不是把 map 文件放在一个单独的文件里*/
    135. // "inlineSourceMap": true,
    136. /* 生成声明文件的 sourceMap */
    137. // "declarationMap": true,
    138. /************** 实验性的配置**************/
    139. /************** 实验性的配置**************/
    140. /************** 实验性的配置**************/
    141. /* 启用装饰器 */
    142. // "experimentalDecorators": true,
    143. // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
    144. /**************高级配置**************/
    145. /**************高级配置**************/
    146. /**************高级配置**************/
    147. /* 强制区分大小写 */
    148. // "forceConsistentCasingInFileNames": true
    149. }
    150. /* 指定需要编译的单个文件列表 */
    151. // "files": [],
    152. /* 指定需要编译的文件/目录 */
    153. // "include": [
    154. // // 只写一个目录名等价于 "./src/**/*"
    155. // "src"
    156. // ]
    157. /* 需要排除的文件或目录 */
    158. // "exclude": []
    159. /* 配置文件继承 */
    160. // "extends": "./tsconfig.base.json"
    161. }