{
  "compilerOptions": {
    // TS需要引用的库，即声明文件，es5 默认引用dom、es5、scripthost
    // 如需要使用es的高级版本特性，通常都需要配置，如es8的数组新特性需要引入"ES2019.Array",
    "lib": [
      "es2015",
      "es2016",
      "es2017",
      "es2018",
      "es2020",
      "esnext",
      "esnext.asynciterable"
    ],
    "module": "commonjs",
    "target": "es2020",
    // 重定向输出目录
    "outDir": "lib",
    "strict": false,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    // 模块解析策略，ts默认用node的解析策略，即相对的方式导入
    "moduleResolution": "node",
    // 启用装饰器
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    // TS编译器在第一次编译之后会生成一个存储编译信息的文件，
    // 第二次编译会在第一次的基础上进行增量编译，可以提高编译的速度
    "incremental": true,
    //在表达式和声明上有隐含的'any'类型时报错。
    "noImplicitAny": false,
    // 允许使用js
    "allowJs": true
  },
  "include": [
    "src",
    "tests",
  ],
  "ts-node": {
    // It is faster to skip typechecking.
    // Remove if you want ts-node to do typechecking.
    "transpileOnly": false,
    "files": true,
    "compilerOptions": {
      // compilerOptions specified here will override those declared below,
      // but *only* in ts-node.  Useful if you want ts-node and tsc to use
      // different options with a single tsconfig.json.
    }
  }
}