sublime text 本身不提供 typescript 静态检测能力,所有报错、any 提示、类型不匹配标红均依赖本地 tsserver 进程运行并正确加载 tsconfig.json;90% 的“没反应”问题源于 tsserver_path 配置错误或 tsconfig.json 未被识别,需确认 tsc/tsserver 版本一致、语法设为 typescript、控制台有 starting tsserver 日志,并使用项目级路径如 "./node_modules/.bin/tsserver"(windows 为 ".cmd")。

Sublime Text 本身不提供 TypeScript 静态检测能力,所有报错、any 提示、类型不匹配标红,都依赖本地 tsserver 进程运行并正确加载 tsconfig.json。装插件 ≠ 有检测,90% 的“没反应”问题出在 tsserver_path 配置或 tsconfig.json 未被识别。
为什么打开 .ts 文件没报错、也不标 any?
不是插件没装,是 tsserver 根本没连上,或者连上了但没读到配置。常见静默失败现象:
- 控制台(
Ctrl+`)里看不到Starting tsserver with:日志 - 右下角显示的是
JavaScript或Plain Text,不是TypeScript - 文件已保存,但修改类型后无任何提示(比如把
string改成number不报错) -
tsconfig.json在项目根目录,但import仍报Cannot find module
先按 Ctrl+` 打开控制台,操作后看是否有启动日志;没有就说明服务根本没起来。
必须确认 tsc 和 tsserver 可执行且版本一致
Sublime 的 TS 插件(如 SublimeTSC 或 SublimeText-Typescript)只是管道,真正干活的是你本地的 TypeScript 工具链。终端里必须能跑通这两条命令:
-
tsc --version输出类似Version 5.4.5 -
tsserver --version输出**完全相同**的版本号;若报command not found,说明node_modules/.bin没进$PATH(macOS/Linux 查echo $PATH,Windows 查系统环境变量中 Node.js 安装路径下的node_modules\.bin) - Node.js 推荐用
v18或v20;v16在部分插件中已有兼容问题
全局安装:npm install -g typescript;项目级安装(如用 pnpm)则后续需显式指定路径。
手动填对 tsserver_path 是关键一步
插件默认尝试调用全局 tsserver,但在以下情况它几乎必然失败:
- 用了
nvm/volta/fnm管理 Node 版本 - 项目用
pnpm或yarn,TypeScript 是本地安装 - 全局 TypeScript 版本和项目要求不一致(比如项目要 TS 5.4,全局却是 4.9)
解决方法:显式指定相对路径,在 Preferences → Package Settings → SublimeTSC → Settings(或对应插件设置)中填入:
{
"tsserver_path": "./node_modules/.bin/tsserver",
"tsserver_options": ["--locale", "zh-CN"]
}
注意:
- macOS/Linux 用上面写法;Windows 用户改用
"./node_modules/.bin/tsserver.cmd" - 路径是相对于你当前打开的文件夹(即项目根目录),不是 Sublime 安装目录
- 如果项目还没装 TypeScript,先运行
pnpm add -D typescript或yarn add -D typescript - 别填全局路径如
/usr/lib/node_modules/typescript/lib/tsserver.js——它无法读取项目级tsconfig.json中的paths、baseUrl等配置
tsconfig.json 必须存在且被正确加载
tsserver 启动成功 ≠ 配置生效。很多高级检查(如 strict、noImplicitAny、路径别名)失效,根源常在配置未被识别:
-
tsconfig.json必须放在项目根目录(即你通过File → Open Folder打开的那个文件夹) - 插件不会自动监听配置变更,改完
tsconfig.json后要执行TS: Restart Server(Ctrl+Shift+P输入)或重启 Sublime - 如果用了
paths别名,仅靠baseUrl不够,得加"tsserver_options": ["--project", "."]强制走完整项目模式 - React 项目中 JSX 标签标红?确认
tsconfig.json里"jsx"设为"preserve"或"react",且插件配置中启用了 JSX 支持
最易忽略的一点:tsserver 默认只从当前文件路径向上查找 tsconfig.json。如果你不是以项目根目录打开的,它可能根本找不到配置文件,只能 fallback 到默认语义——此时 noImplicitAny 就不会触发。











