{
  "compilerOptions": {
    "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
    "target": "ES2020",
    "types": ["vite/client"], //要包含的类型声明文件名列表
    "useDefineForClassFields": true, //将 class 声明中的字段语义从 [[Set]] 变更到 [[Define]]
    "module": "ESNext", // 设置编译后代码使用的模块化系统：commonjs | UMD | AMD | ES2020 | ESNext | System
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "skipLibCheck": true, //忽略所有的声明文件（ *.d.ts）的类型检查
    "sourceMap": false, // 生成目标文件的sourceMap文件
    "allowJs": true, // 允许编译器编译JS，JSX文件
    "allowSyntheticDefaultImports": true, //允许从没有设置默认导出的模块中默认导入。这并不影响代码的输出，仅为了类型检查。默认值：module === "system" 或设置了 --esModuleInterop 且 module 不为 es2015 / esnext
    "baseUrl": "./", // 解析非相对模块的基地址，默认是当前目录
    "paths": {
      "@": ["src"],
      "@*": ["src/*"]
    },

    /* Bundler mode */
    "moduleResolution": "Bundler", // 模块解析策略，ts5默认用bundler的解析策略，即相对的方式导入
    "allowImportingTsExtensions": true,
    "resolveJsonModule": true, // 允许导入扩展名为“.json”的模块
    "isolatedModules": true, // 确保每个文件都可以在不依赖其他导入的情况下安全地进行传输
    "moduleDetection": "force",
    "esModuleInterop": true, // 支持导入 CommonJs 模块
    "noEmit": true, // 不输出文件,即编译后不会生成任何js文件
    "jsx": "preserve", //在 `.tsx`文件里支持JSX： `"React"`或 `"Preserve"`

    /* Linting */
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedSideEffectImports": true
  },
  "include": [
    "types/**/*.d.ts",
    "viteConfig/**/*.ts",
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "auto-import.d.ts"
  ]
}
