根本原因是tsserver未连接:需确认tsc/tsserver版本一致且path正确,sublimetsc配置tsserver_path指向本地lib/tsserver.js,手动设置.ts语法为typescript,并改tsconfig.json后重启ts服务。

Sublime Text 装完插件却没错误提示、跳转失效、补全不出现?根本原因不是插件没装对,而是 tsserver 没连上——它既没被找到,也没被正确启动。
如何确认 tsc 和 tsserver 真的可用
所有功能都依赖本地 tsserver 提供语义分析,Sublime 只是转发请求。终端里跑不通,编辑器里就一定静默失败。
- 运行
tsc --version,必须输出类似Version 5.4.5;没输出说明 TypeScript 根本没装 - 运行
tsserver --version,版本号必须和tsc一致;报command not found说明node_modules/.bin不在$PATH(macOS/Linux 查echo $PATH,Windows 查系统环境变量中 Node.js 安装路径下的node_modules\.bin) - Node.js 推荐用 v18 或 v20;v16 虽能跑但部分插件行为异常,v14 已过时
- 全局安装:用
npm install -g typescript;项目级安装(如 pnpm)则后续必须显式指定路径,不能指望插件自动发现
为什么装了 SublimeTSC 却只高亮、没补全
因为 SublimeTSC 默认尝试调用全局 tsserver,但多数现代项目用的是本地 node_modules/typescript,路径一错,整个语言服务就断联。
- 别装
TSCompleteMe或TypeScript-Sublime-Plugin:前者多年未更新、不兼容 ST4,后者自带旧版内嵌tsserver,完全不读tsconfig.json - 只装
SublimeTSC(注意名称无空格),安装后打开.ts文件,状态栏左下角应显示TS - 配置位置:菜单 → Preferences → Package Settings → SublimeTSC → Settings
- 填入绝对或相对路径:
"tsserver_path": "./node_modules/typescript/lib/tsserver.js"(推荐项目级路径,避免版本冲突) - Windows 用户路径用正斜杠:
"tsserver_path": "./node_modules/typescript/lib/tsserver.js",不要用反斜杠
为什么 .ts 文件打开还是 Plain Text
Sublime 默认不识别 .ts 后缀,装插件 ≠ 自动绑定语法。这是最常被忽略的第一步。
- 打开任意
.ts文件 → 点击右下角当前语法名(比如Plain Text)→ 选TypeScript(不是JavaScript或TypeScriptReact) - 若列表里没有
TypeScript,说明语法包没加载:用Ctrl+Shift+P→ 输入Package Control: Install Package→ 安装TypeScriptSyntax(轻量且更新勤) - 想永久生效:菜单 → View → Syntax → Open all with current extension as… → 再选
TypeScript - 如果要支持
.tsx,进Preferences → Package Settings → TypeScript → Settings加一行:"enable_tsx": true
tsconfig.json 配置对了,但类型检查还是不准
tsserver 不会自动监听 tsconfig.json 变更,也不会 fallback 到“合理默认”——它要么读到完整配置,要么降级为几乎无检查的模式。
- 确保
tsconfig.json在你用subl打开的文件夹(即项目根目录)下;不在?tsserver就不会加载它 - 改完
tsconfig.json后,必须手动重启服务:按Ctrl+Shift+P→ 输入TS: Restart Server - 如果项目用 pnpm/yarn,确认
node_modules/typescript存在且版本 ≥ 4.0;老版本对lib和target支持弱,会报Cannot find name 'Promise'这类错误 -
tsserver_node_path必须指向真实可用的node可执行文件(用which node查),设成空字符串或错路径会导致服务静默失败
最容易被跳过的其实是三件事:终端里先跑通 tsc 和 tsserver、右下角手动切一次语法、改完 tsconfig.json 后手动重启服务。这三步缺一,后面所有配置都只是摆设。











