问题在于LSP-typescript未连上项目tsserver,需确认右下角显示LSP: typescript、控制台有Starting tsserver日志、command路径正确(如"./node_modules/.bin/tsserver.cmd")、tsconfig.json置于项目根目录并含include/paths等配置。

装了 LSP-typescript 插件但类型推导还是弱、跳转失效、any 泛滥?问题不在插件本身,而在于它根本没连上你项目真正的 tsserver —— 大多数人卡在路径配置或 tsconfig.json 加载失败上。
怎么确认 LSP-typescript 真的连上了 tsserver
右下角状态栏只显示 LSP: ready 或压根没反应?说明服务根本没起来。真正连通的标志是出现 LSP: typescript 或 LSP: tsserver(不是 LSP: LSP-typescript)。
- 按
Ctrl+`打开 Sublime 控制台,搜索Starting tsserver:有这行日志才说明进程启动了 - 如果看到
spawn tsserver ENOENT,就是路径错了;看到Failed to start server: exit code 1,多半是tsconfig.json语法错误或tsserver版本不兼容 - 当前文件 scope 必须是
source.ts或source.tsx:按Ctrl+Alt+Shift+P看输出,不是text.plain就说明语法没绑定对
command 路径必须用项目级绝对路径或相对路径
别信“全局安装就自动可用”——tsserver 是从项目 node_modules 里读 typescript 包的,全局版本和项目 TS 版本不一致时,路径别名、JSX 支持、paths 都会失效。
- 推荐写法:
"command": ["./node_modules/.bin/tsserver"](macOS/Linux)或"command": ["./node_modules/.bin/tsserver.cmd"](Windows) - Windows 用户漏掉
.cmd后缀会直接报ENOENT;macOS/Linux 下tsserver是 shell 脚本,不能直接执行tsserver.js - 别填
/usr/lib/node_modules/typescript/lib/tsserver.js这类路径:它绕过项目依赖,也读不到tsconfig.json中的baseUrl和paths - 用
nvm或volta的用户,Sublime 启动时的PATH和终端不一致,绝对路径最稳
tsconfig.json 不生效的三个硬性条件
tsserver 只在打开的文件所在目录向上逐层找 tsconfig.json,找不到就降级为无配置模式——这时候所有高级类型分析都会退化。
-
tsconfig.json必须放在项目根目录,且被 Sublime 当前工作区识别为根(右键 →Open Folder as Project) - 大项目必须用
"include"显式声明源码路径,例如:"include": ["src/**/*", "types/**/*.d.ts"];只写"files"或留空,tsserver会忽略大部分文件 - 路径别名(如
@/utils)要配"baseUrl": "."和"paths",且baseUrl是相对于tsconfig.json的,不是项目根目录 -
jsx支持必须设为"preserve"或"react-jsx",设成"react"会导致 .tsx 文件类型信息丢失
为什么改完配置还是没效果
重启 Sublime 不等于重载 LSP 配置。LSP-typescript 的设置文件是独立的,改了 LSP.sublime-settings 没用,必须改 Preferences → Package Settings → LSP-typescript → Settings。
- 别碰
initializationOptions字段:TS 4.5+ 已废弃该字段,写了反而导致连接中断 - 验证
tsconfig.json是否被加载:在文件里故意写错一个选项,比如"target": "es2099",保存后看状态栏是否弹出TS6046错误 - 如果用了 pnpm/yarn,
node_modules/.bin下的tsserver可能是软链接,确保它指向真实可执行文件(ls -l node_modules/.bin/tsserver*)
最常被忽略的是:Sublime 的“项目根目录”和你终端 pwd 不一定一致,tsserver 查找 tsconfig.json 完全依赖这个路径。哪怕配置全对,打开文件的方式不对,它照样读不到。


















