TypeScript 中的 baseUrl

说明 baseUrl 的历史用途、它如何影响裸模块解析,以及为什么现代项目通常应减少对它的依赖。

#tech / dev #resource / typescript #type / concept #status / growing

[!info] related notes

TypeScript 中的 baseUrl

一句话定义

baseUrl 会给裸模块导入提供一个额外查找根目录。

核心机制 / 工作原理

如果配置:

{
  "compilerOptions": {
    "baseUrl": "./src"
  }
}

那么:

import { foo } from "utils/foo";

会尝试按 src/utils/foo 继续解析。

最小例子 / 最小场景

baseUrl 最常见的旧用途是:

  • 让项目内部能写裸路径导入
  • 作为 paths 值的公共前缀

边界与易混淆点

baseUrl 不只是“给 alias 提供前缀”

它会真实参与模块解析优先级。

baseUrl 已在现代 TypeScript 里进入弃用路径

官方文档说明:

  • 它最初主要为 AMD loader 场景设计
  • 从 TypeScript 4.1 起,paths 已不再依赖 baseUrl
  • 到 TypeScript 6.0,它已被标记为 deprecated

ignoreDeprecations 只是静默,不是迁移

如果只是压掉提示,可以设置 ignoreDeprecations: "6.0",但这不代表项目已经摆脱了对 baseUrl 的真实依赖。

参考信息

创建于 2026/5/15 更新于 2026/5/27