工程化不是堆配置,而是用最少的约定换来团队一致的开发体验。本文整理我在 TypeScript 项目中沉淀的一套可落地方案。
严格模式是 TypeScript 的灵魂。我的基线配置会开启 strict,但对部分历史项目采用渐进式:先开 noImplicitAny,再逐步收紧。
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"strict": true,
"noUncheckedIndexedAccess": true,
"baseUrl": ".",
"paths": { "@/*": ["src/*"] }
}
}
paths 统一模块解析,配合打包工具别名保持运行时一致;incremental 显著缩短本地类型检查耗时;.d.ts 打进 bundle。在持续集成阶段单独跑 tsc --noEmit,把类型错误拦截在合并前,而不是依赖运行时报错。配合缓存可以将类型检查时间从分钟级降到秒级。
以上是一套可复制的工程化骨架,后续会再单独写 webpack / vite 的差异选择。