← [ BACK_TO_NOTES ]

TypeScript 中的 paths

说明 paths 如何把 import 模式映射到具体路径,以及它为什么只影响 TypeScript 解析而不会自动改写运行时 import。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 paths

一句话定义

paths 用来把特定 import 模式映射到一组明确的目标路径。

核心机制 / 工作原理

例如:

{
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

这会让 TypeScript 把:

import { foo } from "@/foo";

理解成对 ./src/foo 的解析。

最小例子 / 最小场景

paths 常见于:

  • 前端项目 alias
  • monorepo 中的局部包内 alias
  • IDE 辅助解析

边界与易混淆点

paths 不会改写 emit 出来的 import

这是它最容易被误解的地方。

TypeScript 官方文档明确强调:paths 只影响解析,不会自动改写输出代码里的 import 路径。

所以如果运行时或 bundler 没配同样的 alias,常见结果是:

  • 类型检查通过
  • 运行时报错

paths 在 monorepo 里容易把别的源码拉进 program

如果 paths 直接跨包指向别人的 src,很容易引发:

  • rootDir 报错
  • 类型噪音
  • IDE 变慢

参考信息

创建于 2026/5/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本