tsconfig.json 常用配置

发布时间:2026/9/19 5:57:07

tsconfig.json 常用配置 tsconfig.json 常用配置tsconfig.json这个文件是干什么的怎么生成它顶层字段include / exclude / filesextends配置也可以继承compileOnSave保存时自动编译最核心的部分(compilerOptions)1. 编译输出相关2. 类型检查相关3. 模块解析与路径别名4. 其他实用选项一个常见的配置模板几点小建议tsconfig.json这个文件是干什么的只要项目根目录存在tsconfig.jsonTypeScript 就会把它当成一个项目的起点。它主要做三件事明确项目根路径编译器知道从哪开始找文件。控制编译行为比如输出到哪个目录、用哪种模块规范。划定文件范围哪些文件要编译哪些可以忽略。如果你是 JavaScript 项目也可以用jsconfig.json作用类似只不过默认开启了一些针对 JS 的编译选项。怎么生成它最省事的办法在终端里执行npx tsc--init执行完会生成一个带详细注释的配置文件每个选项旁边都有解释很适合初次接触的人。如果你想自己创建也可以直接新建一个tsconfig.json然后去 tsconfig/bases 复制一份和你框架匹配的基础配置。顶层字段include / exclude / filesinclude指定需要编译的文件或文件夹支持通配符*和**。例如src/**/*表示编译 src 下所有文件。exclude从编译列表中排除某些文件默认已经排除了node_modules等目录。files只能一个一个列出具体文件路径不适合文件多的项目管理起来比较麻烦。一般情况下用include加exclude就足够了。extends配置也可以继承如果你的项目有多个子模块或者想在多个项目之间共享一套基础配置可以用extends来继承另一个配置文件{extends:./base.json,compilerOptions:{outDir:./dist}}甚至可以直接引用 npm 包里的配置比如tsconfig/node12省得自己从头写。compileOnSave保存时自动编译这个选项在 VS Code 里并不起作用只有 Visual Studio 才认。所以基本可以忽略它。最核心的部分(compilerOptions)这部分是配置的重头戏下面按功能分类说几个常用的。1. 编译输出相关target编译后的 JS 版本现在基本都用ES2020或更高除非你需要兼容特别旧的浏览器。module模块规范Node 环境常用commonjs前端打包项目可以用ESNext。lib指定代码里可用的 JS 内置对象如Promise、Map如果你用了较新的语法需要在这里补充对应的库声明。outDir编译输出目录比如./dist。rootDir源码根目录保证输出的目录结构和源码对应。sourceMap是否生成.map调试文件建议开启。declaration是否生成.d.ts类型声明文件如果你在写库这个必须开。2. 类型检查相关strict是一个总开关开启它会同时启用noImplicitAny、strictNullChecks等多个严格的检查选项。强烈建议始终开启它能让 TypeScript 真正发挥类型安全保障的作用提前发现很多潜在的运行时错误。如果你在旧项目上初次开启可能会遇到一堆报错但修复之后代码质量会有明显提升。3. 模块解析与路径别名moduleResolution通常设为node使用 Node.js 的解析策略。baseUrl和paths配合使用可以设置路径别名比如{baseUrl:.,paths:{/*:[src/*]}}这样你在代码里就能写import utils from /utils了。不过要注意打包工具如 Vite、Webpack也需要同步配置相同的别名否则运行时会找不到文件。4. 其他实用选项resolveJsonModule允许直接importJSON 文件。esModuleInterop让 ES 模块和 CommonJS 互操作更顺畅建议开启。skipLibCheck跳过对声明文件的类型检查能加快编译速度通常开着没问题。incremental启用增量编译第二次及之后的编译会快很多开发环境下推荐开启。一个常见的配置模板下面这个模板综合了上面提到的常用选项你可以在此基础上按需调整{compilerOptions:{target:ES2020,module:commonjs,lib:[ES2020,DOM],outDir:./dist,rootDir:./src,sourceMap:true,declaration:true,strict:true,noImplicitAny:true,strictNullChecks:true,moduleResolution:node,baseUrl:.,paths:{/*:[src/*]},esModuleInterop:true,resolveJsonModule:true,skipLibCheck:true,incremental:true},include:[src/**/*],exclude:[node_modules,dist,**/*.test.ts]}几点小建议严格模式别关。strict: true带来的收益远大于初期修改成本。路径别名用起来。配上baseUrl和paths能让 import 语句清爽不少。善用extends。如果项目里有多个子项目抽一份公共配置出来维护起来省心。拿不准的配置查官方文档。TypeScript 官方 TSConfig 参考 写得很清楚比到处搜靠谱。
延伸阅读

更多相关文章

2026/9/15 18:42:29

AI代码生成实战:从本地部署到工程化集成的全流程指南

这次我们来看一个 AI 代码生成与辅助编程的实战话题。当程序员说“等 AI 写代码的时候be like”,背后反映的是对 AI 编程工具从新奇到依赖,再到审视其效率与局限性的真实体验。本文不讨论抽象概念,直接聚焦于当前主流 AI 代码工具的核心能力、…

2026/9/16 10:54:50

揭秘GPT-5.6迷雾:手把手搭建本地开源代码大模型替代方案

最近,AI圈子里关于“GPT-5.6”的讨论突然多了起来,尤其是在一些开发者社区和社交平台上,你可能会看到“GPT-5.6 Sol”、“GPT-5.6 Terra”这样的关键词。很多开发者,特别是那些习惯了使用Cursor、Copilot等AI编程工具的朋友&#…

2026/9/14 6:02:17

LSTM时间序列预测实战:从原理到天气预测应用

1. 项目概述:当LSTM遇见天气预测最近几年,无论是做数据分析的朋友,还是刚入门机器学习的新手,聊到时间序列预测,LSTM(长短时记忆网络)几乎是一个绕不开的名字。它就像一把“瑞士军刀”&#xff…

2026/9/19 5:53:51

绕过API限制:OpenClaw实现主流AI网页端直接调用

1. 项目背景与核心价值最近在折腾AI工具时发现一个痛点:很多大模型网页端明明能用,但想集成到自己的项目里就得折腾API。要么要申请权限,要么要处理复杂的鉴权流程,甚至有些服务压根不开放API。OpenClaw这个项目正好解决了这个问题…

2026/9/19 5:53:51

Flutter与OpenHarmony游戏拖尾特效实现与优化

1. 项目概述:Flutter与OpenHarmony下的游戏拖尾特效实现在移动游戏开发中,视觉反馈的即时性和表现力直接影响玩家的游戏体验。轨迹拖尾特效(Trail Effect)作为一种常见的视觉增强手段,能够有效提升动态物体的运动感知。…

2026/9/19 5:53:51

Jetson边缘AI实战复盘:从系统烧录到YOLOv5与Qwen大模型部署全链路

1. 为什么值得做一次系统复盘Jetson边缘嵌入式实战课程走到第十讲,回头把前九讲的内容串一遍,这件事本身就比再学一个新模型更有价值。我见过太多人学Jetson的方式是“东一榔头西一棒槌”——今天跟着教程刷个系统,明天抄个YOLOv5的部署脚本&…

2026/9/19 5:53:51

嵌入式系统第一性原理:从SPI、I2C到DMA的工程实践

嵌入式系统这个领域有个很有意思的现象:很多人能照着教程把外设跑通,但一旦项目换了芯片、换了传感器,或者时序上出了点玄学问题,就完全不知道从哪里下手。我自己带过不少新人,也做过从8位机到Cortex-M7的各种板子&…

2026/9/19 5:48:51

Codex CLI 安装配置全指南:macOS/Windows/IDE 报错排查

1. 先搞清楚:你装的 Codex 到底是哪一层的东西第一次接触 Codex 的朋友,十个里有八个会在“下载哪个、装哪个”上绕弯子。因为 Codex 这个名字现在同时指几样东西:一个是 CLI 命令行工具,可以通过终端和它对话,让它直接…

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/19 0:03:10

验证 OpenSpec 兼容性,Cursor 的 Token 从 TaoToken 出

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

书桌角落的 Mac mini,OpenClaw 通过 TaoToken 跑任务。

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

oh-my-hermes:打造跨工具的命令编排与插件化工作流

1. 项目概述与设计初衷1.1 它到底是什么先说结论:oh-my-hermes 是一个面向开发者日常终端操作的效率工具套件,核心定位是“把分散在各类命令行工具里的高频操作,统一收拢成一套插件化、可编排的工作流”。项目灵感来源很明显——oh-my-zsh 重…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码