{
  "compilerOptions": {
    /* 访问 https://aka.ms/tsconfig 了解关于此文件的更多信息 */

    /* 项目 */
    // "incremental": true,                              /* 保存 .tsbuildinfo 文件以允许项目的增量编译。 */
    // "composite": true,                                /* 启用约束，使TypeScript项目可以与项目引用一起使用。 */
    // "tsBuildInfoFile": "./.tsbuildinfo",              /* 指定 .tsbuildinfo 增量编译文件的路径。 */
    // "disableSourceOfProjectReferenceRedirect": true,  /* 在引用复合项目时，禁止优先使用源文件而不是声明文件。 */
    // "disableSolutionSearching": true,                 /* 在编辑时将项目排除在多项目引用检查之外。 */
    // "disableReferencedProjectLoad": true,             /* 减少TypeScript自动加载的项目数量。 */

    /* 语言和环境 */
    "target": "ESNext" /* 设置生成的JavaScript的JavaScript语言版本，并包含兼容的库声明。 */,
    // "lib": [],                                        /* 指定一组描述目标运行时环境的捆绑库声明文件。 */
    // "jsx": "preserve",                                /* 指定生成什么JSX代码。 */
    // "experimentalDecorators": true,                   /* 启用对传统实验性装饰器的实验性支持。 */
    // "emitDecoratorMetadata": true,                    /* 为源文件中的装饰声明发出设计类型元数据。 */
    // "jsxFactory": "",                                 /* 指定在针对React JSX发射时使用的JSX工厂函数，例如'React.createElement'或'h'。 */
    // "jsxFragmentFactory": "",                         /* 指定在针对React JSX发射时用于片段的JSX片段引用，例如'React.Fragment'或'Fragment'。 */
    // "jsxImportSource": "",                            /* 指定在使用'jsx: react-jsx*'时用于导入JSX工厂函数的模块说明符。 */
    // "reactNamespace": "",                             /* 指定调用'createElement'的对象。这仅适用于针对'react' JSX发射。 */
    // "noLib": true,                                    /* 禁止包含任何库文件，包括默认的lib.d.ts。 */
    // "useDefineForClassFields": true,                  /* 发出符合ECMAScript标准的类字段。 */
    // "moduleDetection": "auto",                        /* 控制用于检测模块格式JS文件的方法。 */

    /* 模块 */
    "module": "ESNext" /* 指定生成的模块代码。 */,
    // "rootDir": "./",                                  /* 指定源文件中的根文件夹。 */
    "moduleResolution": "bundler" /* 指定TypeScript如何从给定的模块说明符查找文件。推荐现代打包器解析。 */,
    // "baseUrl": "./",                                  /* 指定用于解析非相对模块名称的基本目录。 */
    // "paths": {},                                      /* 指定一组将导入重新映射到其他查找位置的条目。 */
    // "rootDirs": [],                                   /* 允许在解析模块时将多个文件夹视为一个文件夹。 */
    // "typeRoots": [],                                  /* 指定多个充当'./node_modules/@types'的文件夹。 */
    // "types": [],                                      /* 指定要包含的类型包名称，而不在源文件中引用。 */
    // "allowUmdGlobalAccess": true,                     /* 允许从模块访问UMD全局变量。 */
    // "moduleSuffixes": [],                             /* 解析模块时要搜索的文件名后缀列表。 */
    // "allowImportingTsExtensions": true,               /* 允许导入包含TypeScript文件扩展名。需要设置'--moduleResolution bundler'和'--noEmit'或'--emitDeclarationOnly'。 */
    // "resolvePackageJsonExports": true,                /* 解析包导入时使用package.json的'exports'字段。 */
    // "resolvePackageJsonImports": true,                /* 解析导入时使用package.json的'imports'字段。 */
    // "customConditions": [],                           /* 在解析导入时，除了解析器特定的默认值外，还要设置的条件。 */
    "resolveJsonModule": true /* 启用导入.json文件。 */,
    // "allowArbitraryExtensions": true,                 /* 启用导入任何扩展名的文件，前提是存在声明文件。 */
    // "noResolve": true,                                /* 禁止'import'、'require'或'<reference>'扩展TypeScript应该添加到项目中的文件数量。 */

    /* JavaScript支持 */
    // "allowJs": true,                                  /* 允许JavaScript文件成为您程序的一部分。使用'checkJS'选项从这些文件中获取错误。 */
    // "checkJs": true,                                  /* 在类型检查的JavaScript文件中启用错误报告。 */
    // "maxNodeModuleJsDepth": 1,                        /* 指定用于检查来自'node_modules'的JavaScript文件的最大文件夹深度。仅适用于'allowJs'。 */

    /* 生成 */
    // "declaration": true,                              /* 从项目中的TypeScript和JavaScript文件生成.d.ts文件。 */
    // "declarationMap": true,                           /* 为d.ts文件创建源映射。 */
    // "emitDeclarationOnly": true,                      /* 只输出d.ts文件，不输出JavaScript文件。 */
    // "sourceMap": true,                                /* 为生成的JavaScript文件创建源映射文件。 */
    // "inlineSourceMap": true,                          /* 在生成的JavaScript内包含源映射文件。 */
    // "outFile": "./",                                  /* 指定将所有输出捆绑到一个JavaScript文件中的文件。如果'declaration'为true，还指定捆绑所有.d.ts输出的文件。 */
    // "outDir": "./",                                   /* 为所有生成的文件指定输出文件夹。 */
    // "removeComments": true,                           /* 禁止发出注释。 */
    // "noEmit": true,                                   /* 禁止从编译中发出文件。 */
    // "importHelpers": true,                            /* 允许每个项目从tslib导入一次辅助函数，而不是在每个文件中包含它们。 */
    // "importsNotUsedAsValues": "remove",               /* 指定仅用于类型的导入的发出/检查行为。 */
    // "downlevelIteration": true,                       /* 为迭代发出更符合标准但更冗长且性能较低的JavaScript。 */
    // "sourceRoot": "",                                 /* 指定调试器应该找到参考源代码的根路径。 */
    // "mapRoot": "",                                    /* 指定调试器应该定位映射文件的位置，而不是生成的位置。 */
    // "inlineSources": true,                            /* 在生成的JavaScript内的源映射中包含源代码。 */
    // "emitBOM": true,                                  /* 在输出文件的开头发出UTF-8字节顺序标记(BOM)。 */
    // "newLine": "crlf",                                /* 设置发出文件的换行符。 */
    // "stripInternal": true,                            /* 禁止发出在其JSDoc注释中有'@internal'的声明。 */
    // "noEmitHelpers": true,                            /* 禁止在编译输出中生成自定义辅助函数，如'__extends'。 */
    // "noEmitOnError": true,                            /* 如果报告了任何类型检查错误，则禁止发出文件。 */
    // "preserveConstEnums": true,                       /* 禁止在生成的代码中擦除'const enum'声明。 */
    // "declarationDir": "./",                           /* 指定生成的声明文件的输出目录。 */
    // "preserveValueImports": true,                     /* 在JavaScript输出中保留未使用的导入值，否则将被删除。 */

    /* 互操作约束 */
    "isolatedModules": true /* 确保每个文件都可以安全地转译，而不依赖其他导入。 */,
    // "verbatimModuleSyntax": true,                     /* 不转换或省略任何未标记为仅类型的导入或导出，确保它们根据'module'设置以输出文件的格式编写。 */
    // "allowSyntheticDefaultImports": true,             /* 当模块没有默认导出时，允许'import x from y'。 */
    "esModuleInterop": true /* 发出额外的JavaScript以简化支持导入CommonJS模块。这为类型兼容性启用了'allowSyntheticDefaultImports'。 */,
    // "preserveSymlinks": true,                         /* 禁止将符号链接解析为其真实路径。这与node中的相同标志相关。 */
    "forceConsistentCasingInFileNames": true /* 确保导入中的大小写正确。 */,

    /* 类型检查 */
    "strict": true /* 启用所有严格的类型检查选项。 */,
    // "noImplicitAny": true,                            /* 为具有隐含'any'类型的表达式和声明启用错误报告。 */
    // "strictNullChecks": true,                         /* 在类型检查时考虑'null'和'undefined'。 */
    // "strictFunctionTypes": true,                      /* 在分配函数时，检查以确保参数和返回值是子类型兼容的。 */
    // "strictBindCallApply": true,                      /* 检查'bind'、'call'和'apply'方法的参数是否与原始函数匹配。 */
    // "strictPropertyInitialization": true,             /* 检查类属性是否已声明但未在构造函数中设置。 */
    // "noImplicitThis": true,                           /* 当'this'被赋予'any'类型时启用错误报告。 */
    "useUnknownInCatchVariables": true,               /* 默认将catch子句变量设为'unknown'而不是'any'。 */
    // "alwaysStrict": true,                             /* 确保始终发出'use strict'。 */
    "noUnusedLocals": true,                           /* 当局部变量未被读取时启用错误报告。 */
    "noUnusedParameters": true,                       /* 当函数参数未被读取时引发错误。 */
    "exactOptionalPropertyTypes": true,               /* 按原样解释可选属性类型，而不是添加'undefined'。 */
    "noImplicitReturns": true,                        /* 为函数中不显式返回的代码路径启用错误报告。 */
    "noFallthroughCasesInSwitch": true,               /* 为switch语句中的贯穿情况启用错误报告。 */
    // "noUncheckedIndexedAccess": true,                 /* 使用索引访问时，将'undefined'添加到类型中。 */
    "noImplicitOverride": true,                       /* 确保派生类中的覆盖成员用override修饰符标记。 */
    // "noPropertyAccessFromIndexSignature": true,       /* 强制使用索引访问器访问使用索引类型声明的键。 */
    // "allowUnusedLabels": true,                        /* 禁用未使用标签的错误报告。 */
    // "allowUnreachableCode": true,                     /* 禁用不可达代码的错误报告。 */

    /* 完整性 */
    // "skipDefaultLibCheck": true,                      /* 跳过TypeScript附带的.d.ts文件的类型检查。 */
    "skipLibCheck": true /* 跳过所有.d.ts文件的类型检查。 */
  }
}
