tsconfig.json 必须配置 baseUrl 和 paths 才能支持 ~ 别名,否则 VSCode 无法解析 ~/utils/helper;需重启 TS Server、开启 js/ts autoImports、启用 Auto Import 插件别名支持,并确保状态栏显示 TypeScript/JavaScript。

tsconfig.json 里必须配 baseUrl 和 paths
波浪号 ~ 别名不是 VSCode 自带的,它完全依赖 TypeScript 编译器的路径解析能力。如果 tsconfig.json 里没声明 baseUrl 和 paths,哪怕插件再智能,也找不到 ~/utils/helper 对应哪个文件。
常见错误现象:输入 helper 按 Ctrl+Space,补全列表里没有带 ~/ 的 import 项;或者手动写了 import { foo } from '~/utils/helper',但报红“Cannot find module”。
-
baseUrl一般设为"./"(项目根目录),不能留空或写错相对路径 -
paths必须用数组包裹字符串,且通配符要写成"~/*": ["src/*"],不是"~": ["src"]或"~/": ["src/"] - 改完
tsconfig.json后,必须运行TypeScript: Restart TS server(命令面板Ctrl+Shift+P),否则旧缓存还在,别名不生效
javascript.suggest.autoImports 和 typescript.suggest.autoImports 都要开
很多人只开了 typescript.suggest.autoImports,结果在 .js 或 .jsx 文件里波浪号导入不出现——因为 JS 文件走的是 JavaScript 语言服务,它有自己的开关。
这两个设置控制的是:输入未定义符号时,IntelliSense 下拉列表里是否显示带 import 前缀的建议项。关掉任何一个,对应语言文件就看不到 ~/ 路径的自动导入选项。
- 打开
settings.json(Ctrl+,→ 右上角“打开设置(JSON)”) - 确认包含这两行(注意拼写是
autoImports,不是autoImport):"javascript.suggest.autoImports": true"typescript.suggest.autoImports": true - 如果项目同时含 JS 和 TS 文件,漏掉任一都会导致部分文件无法触发
Auto Import 插件需启用别名识别
VSCode 内置的自动导入对简单路径还行,但遇到嵌套深、多级别名、或 ~ + src + components 这种组合时,经常漏推荐或路径写死成相对路径。这时候 Auto Import 插件(steoates 版)能补上关键一环。
它默认不会主动读 tsconfig.json 的 paths,必须显式开启别名支持:
- 安装插件后,在设置中搜
auto-import.showImportInSuggestions,设为true - 确保
auto-import.filter.enabled也开启(避免它过滤掉别名路径的建议) - 插件启动后会监听
tsconfig.json变化,但首次加载仍需重启 VSCode,否则可能读不到最新paths
状态栏显示 TS/JS 是硬门槛
右下角状态栏显示 Plain Text 或根本没语言标识,所有自动导入逻辑都停摆——语言服务压根没加载,~ 别名自然无从谈起。
检查顺序不能乱:
- 点一下状态栏语言模式(比如
Plain Text),手动选TypeScript或JavaScript - 确认当前文件在项目根目录下(即存在
tsconfig.json的目录),否则 TS Server 不会为子目录外的文件启用路径解析 - 打开开发者工具(
Ctrl+Shift+P→Developer: Toggle Developer Tools),看 Console 是否报Cannot find global type 'Array'——这是tsconfig.json缺失或格式错误的铁证
别名路径解析是链式依赖:tsconfig 配对 → TS Server 加载 → VSCode 语言服务激活 → 插件读取配置 → 补全列表渲染。任意一环断开,~ 就只是个普通字符。











