{
  "compilerOptions": {
    "incremental": true, // TS编译器在第一次编译之后会生成一个存储编译信息的文件，第二次编译会在第一次的基础上进行增量编译，可以提高编译的速度
    "tsBuildInfoFile": "./buildFile", // 增量编译文件的存储位置
    "target": "ES5",
    "module": "esnext", // 生成代码的模板标准
    "strict": true, // 开启所有严格的类型检查
    "noImplicitAny": false,
    "strictPropertyInitialization": false,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "strictFunctionTypes": false,
    "outDir": "./dist", // 指定输出目录
    "rootDir": "./", // 指定输出文件目录(用于输出)，用于控制输出目录结构
    "declaration": true, // 生成声明文件，开启后会自动生成声明文件
    "declarationDir": "./file", // 指定生成声明文件存放目录
    "emitDeclarationOnly": true, // 只生成声明文件，而不会生成js文件
    "sourceMap": true, // 生成目标文件的sourceMap文件
    "downlevelIteration": true, // 降级遍历器实现，如果目标源是es3/5，那么遍历器会有降级的实现
    "alwaysStrict": true, // 在代码中注入'use strict'
    "noFallthroughCasesInSwitch": true, // 防止switch语句贯穿(即如果没有break语句后面不会执行)
    "removeComments": true, // 删除注释 
    "baseUrl": ".",
    "typeRoots": [
      // add path to @types
      "node_modules/@types"
    ],
    "types": [ // 加载的声明文件包
      "node",
      "webpack-env",
      "@dcloudio/types",
      "vue-class-component/lib"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    // TS需要引用的库，即声明文件，es5 默认引用dom、es5、scripthost,如需要使用es的高级版本特性，通常都需要配置，如es8的数组新特性需要引入"ES2019.Array",
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost",
      "es5",
      "es6",
      "es7",
      "es2015.promise"
    ],
  },
  //表示编译需要编译的文件或目录
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  //表示编译器需要排除的文件或文件夹
  "exclude": [
    "node_modules",
    "unpackage",
    "src/**/*.nvue",
    "dist",
    "./*.js"
  ]
}