Sublime Text 本身不支持 TypeScript,所有功能依赖本地 tsserver;必须安装 TypeScript、配置正确 tsserver_path 指向 tsserver.js,并将 .ts 文件语法设为 TypeScript,否则仅剩语法高亮。

Sublime Text 本身不支持 TypeScript,装完插件 ≠ 有补全、跳转或类型检查——所有这些功能都依赖你本地安装的 tsserver,且必须能被 Sublime 正确调用。没配对路径,就只剩语法高亮。
确认 tsc 和 tsserver 已可用
这是 90% 功能失效的根源。Sublime 的 TS 插件只是“管道”,真正干活的是你系统里的 TypeScript 工具链。
- 终端运行
tsc --version,必须输出类似Version 5.4.5 - 运行
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,别碰 TSCompleteMe 或 TypeScript-Sublime-Plugin
TSCompleteMe 多年未更新,不兼容 Sublime Text 4,大量 issue 报告“补全失效”“崩溃”;TypeScript-Sublime-Plugin 自带旧版内嵌 tsserver,不读 tsconfig.json,也不支持现代编译选项。
- Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Win/Linux)→ 输入
Package Control: Install Package→ 搜索并安装SublimeTSC - 安装后打开任意
.ts文件,状态栏左下角应显示TS,右键菜单出现TypeScript子项 - 不要装
TypeScript-Sublime-Plugin(ms-vscode 官方那个老插件)
手动配置 tsserver_path:否则补全/跳转/错误提示全失效
SublimeTSC 默认尝试调用全局 tsserver,但如果你用了 nvm/fnm/volta、或项目是 pnpm/yarn 管理、或 TypeScript 是本地安装,它大概率找不到——此时必须硬编码路径。
- 打开 Sublime →
Preferences→Package Settings→SublimeTSC→Settings - 在右侧用户设置中添加:
{ "tsserver_path": "/usr/local/lib/node_modules/typescript/lib/tsserver.js" } -
tsserver_path必须指向tsserver.js(不是tsserver可执行文件),位置取决于安装方式:- 全局 npm:查
npm list -g typescript,再拼lib/tsserver.js - 项目本地:用
npm bin或npx which tsserver找到node_modules/.bin/tsserver,然后替换为对应lib/tsserver.js - Windows 用户注意路径用正斜杠
/,例如:C:/Users/xxx/AppData/Roaming/npm/node_modules/typescript/lib/tsserver.js
- 全局 npm:查
确保 .ts 文件被识别为 TypeScript 语法
装了插件 ≠ 自动把 .ts 当 TypeScript 处理。Sublime 默认可能仍用纯文本或 JavaScript 语法高亮。
- 打开任意
.ts文件 → 点击右下角当前语法名称(比如 “Plain Text”)→ 选TypeScript(不是JavaScript或TypeScriptReact) - 想永久生效:菜单
View→Syntax→Open all with current extension as…→TypeScript - 确认插件已启用:运行
Package Control: List Packages,检查是否含SublimeTSC
最常被忽略的点是:Sublime 不读 shell 的 PATH,也不自动找 node_modules/.bin/tsserver;tsserver_path 填错、填成可执行文件而非 tsserver.js、或路径里混用反斜杠,都会导致静默失败——表面看一切正常,实际没有类型检查和跳转。


















