当前位置: 首页 > ai >正文

vue3+ts+vite:详细、完整的 tsconfig.json 示例 / 常见配置项及其用途

一、 tsconfig.json 示例

{"compilerOptions": {// 1. 编译目标与模块系统"target": "ES2020",                          // 指定编译后的 JavaScript 版本为 ES2020"module": "ESNext",                          // 指定模块系统为 ESNext(支持动态导入等)"moduleResolution": "node",                   // 模块解析策略为 Node.js 风格(兼容 npm 包)// 2. 严格类型检查"strict": true,                              // 启用所有严格类型检查选项"noImplicitAny": true,                      // 禁止隐式 any 类型(严格模式默认启用)"strictNullChecks": true,                   // 强制 null/undefined 检查,避免运行时错误"strictFunctionTypes": true,                 // 启用严格的函数类型检查"strictBindCallApply": true,                // 启用严格的 bind/call/apply 检查"strictPropertyInitialization": true,       // 启用严格的属性初始化检查(需配合类构造器)"noImplicitThis": true,                     // 禁止隐式的 this 类型(必须显式声明)"alwaysStrict": true,                        // 在生成的代码中启用严格模式// 3. 路径映射与根目录"baseUrl": "./",                             // 基础路径(相对于 tsconfig.json)"paths": {"@/*": ["src/*"],                         // 将 @/ 映射到 src/,简化 import 路径"@components/*": ["src/components/*"],    // 将 @components/ 映射到 src/components/"@utils/*": ["src/utils/*"]               // 将 @utils/ 映射到 src/utils/},"rootDir": "src",                            // 源码根目录(编译时从 src 开始)"outDir": "dist",                            // 输出目录(编译后的文件)// 4. 开发体验优化"sourceMap": true,                           // 生成 sourceMap 文件,便于调试"inlineSources": false,                       // 是否将源码嵌入到 sourceMap 中(默认 false)"incremental": true,                         // 启用增量编译,缓存提升速度"tsBuildInfoFile": "./.cache/tsbuildinfo",   // 增量编译信息存储文件// 5. JavaScript 兼容性"allowJs": true,                             // 允许编译 .js 文件(适用于渐进式迁移到 TypeScript)"checkJs": false,                            // 不检查 .js 文件(默认 false,可设为 true 启用)"maxNodeModuleJsDepth": 1,                   // 限制解析 node_modules 中 .js 文件的深度(默认 1)// 6. 库与类型声明"skipLibCheck": true,                        // 跳过第三方库的类型检查,提高编译速度"declaration": true,                         // 生成 .d.ts 声明文件,便于库发布"emitDeclarationOnly": false,                // 是否仅生成声明文件(不编译 JS,默认 false)"declarationMap": true,                      // 生成声明文件的 sourceMap,便于调试类型// 7. 其他实用选项"jsx": "react-jsx",                          // React 的 JSX 转换(Vite/Next.js 兼容)"esModuleInterop": true,                     // 解决 CommonJS 与 ES 模块的导入问题"forceConsistentCasingInFileNames": true,   // 强制文件名大小写一致(跨平台安全)"preserveSymlinks": false,                   // 是否保留符号链接(默认 false)"resolveJsonModule": true,                   // 允许导入 .json 文件"isolatedModules": false,                    // 是否将每个文件作为独立模块(默认 false,适用于 Babel 等)// 8. 实验性功能(谨慎使用)"experimentalDecorators": true,              // 启用实验性装饰器(需配合 @babel/plugin-proposal-decorators)"emitDecoratorMetadata": true,               // 启用装饰器元数据反射(需配合 experimentalDecorators)// 9. 类型导入与库设置"types": ["node", "jest"],                   // 自动导入的类型声明文件(如 node、jest)"typeRoots": ["./node_modules/@types", "./types"], // 类型声明文件的根目录"lib": ["ES2020", "DOM", "DOM.Iterable"]    // 编译时需要包含的库文件},// 10. 文件控制"include": ["src/**/*.ts",                              // 包含 src 下的所有 .ts 文件"src/**/*.tsx",                             // 包含 src 下的所有 .tsx 文件"src/**/*.d.ts"                             // 包含 src 下的所有 .d.ts 文件],"exclude": ["node_modules",                             // 排除 node_modules 目录"dist",                                     // 排除 dist 目录"tests/**/*.spec.ts",                       // 排除测试文件"**/*.test.ts"                              // 排除所有 .test.ts 文件],// 11. 高级场景(可选)// "files": ["src/index.ts"],                  // 指定白名单文件(不推荐,通常用 include)// "extends": "./base-config.json"             // 继承其他配置文件(Monorepo 常用)"references": []                               // 引用其他项目(适用于 Monorepo 中的项目引用)
}

二、配置项说明

1、编译目标与模块系统

指定编译后的 JavaScript 版本和模块系统,兼容现代浏览器和打包工具。

2、严格类型检查

启用严格类型检查,避免运行时错误,提高代码质量。

3、路径映射与根目录

简化导入路径,提高代码可读性。

4、开发体验优化

生成 sourceMap 和增量编译信息,提升调试和编译速度。

5、JavaScript 兼容性

支持渐进式迁移到 TypeScript,兼容现有 JavaScript 代码。

6、库与类型声明

生成类型声明文件,便于库发布和类型检查。

7、其他实用选项

解决 CommonJS 与 ES 模块的导入问题,强制文件名大小写一致等。

8、实验性功能

启用装饰器等实验性功能(需配合 Babel 等工具)。

9、类型导入与库设置

自动导入类型声明文件,指定编译时需要的库文件。

10、文件控制

精确控制包含和排除的文件,避免不必要的编译。

11、高级场景

支持 Monorepo 中的项目引用和配置继承。

12、适用场景

现代前端项目(React/Vue/Vite)。

需要严格类型检查和开发效率优化的场景。

大型项目或 Monorepo 结构。

通过以上配置,可以兼顾类型安全、开发体验和编译性能。

三、欢迎交流指正

http://www.xdnf.cn/news/12080.html

相关文章:

  • React Navive初识
  • 强化学习原理入门-2马尔科夫决策过程
  • sentinel规则持久化
  • Postgresql常用函数操作
  • 详解如何通过playwright的 page.eval_on_selector_all() 方法来爬取网页中link进而实现爬虫
  • 动态规划-1035.不相交的线-力扣(LeetCode)
  • Index-TTS-1.5:多模态AI语音生成的革新突破
  • AI驱动游戏开发:Unity与ML-Agents结合
  • App使用webview套壳引入h5(三)——解决打包为app后在安卓机可物理返回但是在苹果手机无法测滑返回的问题
  • LeetCode 461.汉明距离
  • 机器学习监督学习实战四:九种回归算法对波士顿房价数据进行回归预测和评估方法可视化
  • Claude 写 PHP 项目的完整小白教程
  • GO协程(Goroutine)问题总结(待续)
  • 基于西门子S7-200 PLC、KEPServerEx、sql server2012 的闸门群OPC UA数据采集
  • docker快速部署OS web中间件 数据库 编程应用
  • FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏(一)
  • 嵌入式学习之系统编程(十)网络编程之TCP传输控制协议
  • python打卡day45
  • OpenCV 图像通道的分离与合并
  • SpringBoot3项目架构设计与模块解析
  • CIFAR10的使用
  • 【Redis】Redis 的常见客户端汇总
  • 四六级监考《培训学习》+《培训考试》
  • linux 串口调试命令 stty
  • HTML中各种标签的作用
  • 储能数字化的第一步,是把直流能量“看清楚
  • 【Qt】之【Get√】【Bug】通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const
  • 二叉树-104.二叉树的最大深度-力扣(LeetCode)
  • (头歌作业)-6.5 幻方(project)
  • 【大模型】MCP是啥?它和点菜、做菜、端菜有啥关系?