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

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.lqws.cn/news/148627.html

相关文章:

  • 在word中点击zotero Add/Edit Citation没有反应的解决办法
  • 【HTML】HTML 与 CSS 基础教程
  • 低功耗高安全:蓝牙模块在安防系统中的应用方案
  • python版若依框架开发:项目结构解析
  • 使用Node.js分片上传大文件到阿里云OSS
  • 【深度学习】为什么2个3×3的卷积可以相当于一个5×5的卷积核?为什么3个3×3的卷积相当于一个7×7的卷积核,到底区别在哪里?我们该如何使用?
  • 从零搭建到 App Store 上架:跨平台开发者使用 Appuploader与其他工具的实战经验
  • 金融系统功能测试:科技赋能,安全护航
  • 总结HTML中的文本标签
  • 深入浅出玩转物联网时间同步:基于BC260Y的NTP实验与嵌入式仿真教学革命
  • HTML中各种标签的作用
  • Apache Doris + MCP:Agent 时代的实时数据分析底座
  • OrCAD X Capture CIS设计小诀窍系列第二季--03.如何在Capture中输出带有目录和元器件信息的PDF
  • javaweb -html -CSS
  • 专业级PDF转CAD解决方案
  • php apache构建 Web 服务器
  • 使用Python提取PDF元数据的完整指南
  • 【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)
  • Android Settings 数据库生成、监听与默认值配置
  • Go语言底层(三): sync 锁 与 对象池
  • 【Go语言基础【3】】变量、常量、值类型与引用类型
  • Unity VR/MR开发-VR开发与传统3D开发的差异
  • 【大模型推理】splitfuse
  • 第四十五天打卡
  • Flutter嵌入式开发实战 ——从树莓派到智能家居控制面板,打造工业级交互终端
  • 【websocket】安装与使用
  • 将 Jupyter Notebook 的默认存储路径从 C 盘迁移到 D 盘,可以通过以下步骤实现:
  • [10-2]MPU6050简介 江协科技学习笔记(22个知识点)
  • Next.js 中间件鉴权绕过漏洞 CVE-2025-29927
  • NLP学习路线图(二十五):注意力机制