当前真正可用的 typescript 插件仅有 sublimetext-typescript 和 sublimetsc;tscompleteme、typescript-sublime-plugin 等均已失效或不兼容 st4,须卸载;tsserver_path 必须正确配置,语法需绑定为 typescript,.tsx 支持依赖 tsconfig.json 中 jsx 配置及插件启用开关。

Sublime Text 当前真正可用的 TypeScript 插件只有两个:SublimeTSC 和 SublimeText-Typescript;其他名字带“TS”“TypeScript”的插件基本已失效或不兼容 ST4。
哪些插件能用,哪些必须卸载
SublimeText-Typescript(作者 rishijie)和 SublimeTSC(作者 titoBouzout)是目前仅有的两个仍在维护、支持 ST4、能稳定对接 tsserver 的插件。它们都依赖你本地安装的 TypeScript 工具链,不是“开箱即用”,但功能完整——跳转、补全、错误提示、重命名都能跑起来。
必须卸载的插件包括:
-
TSCompleteMe:多年未更新,ST4 下频繁崩溃,补全列表常为空 -
TypeScript-Sublime-Plugin(ms-vscode 官方旧版):自带过期tsserver,不读tsconfig.json,compilerOptions全部失效 -
SublimeLinter-tslint/TSFormatter:只做 lint 或格式化,不提供语言服务,装了也看不到类型错误
别被名字误导——TypeScript(ms-vscode 官方包)在 Package Control 里搜得到,但它已是历史版本,2026 年实测无法启动 tsserver,状态栏显示 TS 但右键无 TypeScript 子菜单。
tsserver_path 配不对我就看不到任何提示
90% 的“有高亮、没提示、Ctrl+Click 失效”问题,根源都在 tsserver_path 没配对。Sublime 不继承 shell 的 $PATH,也不会自动找 node_modules/.bin/tsserver,必须硬编码路径。
- 项目级安装(推荐):
"tsserver_path": "./node_modules/.bin/tsserver"(macOS/Linux),Windows 改为"./node_modules/.bin/tsserver.cmd" - 全局安装(慎用):先终端运行
which tsserver(macOS/Linux)或where tsserver(Windows),把输出路径填进去,比如/usr/local/bin/tsserver - nvm/fnm/volta 用户:别配
tsserver_path,改配tsserver_node_path指向当前 Node 可执行文件(如~/.nvm/versions/node/v18.18.2/bin/node),让插件自己去该 Node 环境下找tsserver
配完重启 Sublime,打开 .ts 文件后,按 Ctrl+` 打开控制台,看到 Starting tsserver 和 Project root: /your/project/path 才算真正连上了。
.ts 文件还是显示 Plain Text?这是语法没绑定
插件装了、tsserver 也连上了,但打开 index.ts 右下角还是 “Plain Text”——说明 Sublime 根本没把这文件当 TypeScript 解析,所有语言功能都会静默失效。
- 临时解决:打开任意
.ts文件 → 点右下角语法名(如 “Plain Text”)→ 选TypeScript(注意不是JavaScript或TypeScriptReact)→ 点弹出的 “Set as Default for .ts Files” - 永久生效:Preferences → Settings – User,确保有这一行:
"extensions": ["ts", "tsx"];不要去改syntaxes/TypeScript.sublime-syntax里的file_extensions,那没用 - 如果用了
ApplySyntax或其他语法自动识别插件,它们会劫持扩展名匹配逻辑,建议禁用后再试
验证方式很简单:新建一个 test.ts,输入 const a: number = 'hello';,如果立刻标红并提示 “Type 'string' is not assignable to type 'number'”,说明语法 + 语言服务都通了。
.tsx 文件 JSX 不生效?两处开关要一起开
.tsx 不是 .ts 加个 x 就完事。JSX 解析失败会导致 import React from 'react' 报错、组件标签被当语法错误标红。
- 语法层面:确保已装
TypeScriptSyntax(轻量)或官方TypeScript包,并在 Settings – Syntax Specific 里加"extensions": ["ts", "tsx"] - 插件层面:SublimeText-Typescript 要加
"enable_tsx": true;SublimeTSC 默认支持,但前提是tsconfig.json里"jsx"字段设对了(比如"preserve"或"react") - 关键陷阱:如果
tsconfig.json缺失或放在子目录,插件会 fallback 到无 JSX 模式,此时即使开了enable_tsx也没用
最省事的验证法:删掉项目根目录的 tsconfig.json,再打开 App.tsx,你会发现原本正常的 JSX 突然全标红——这就反向证明,JSX 支持完全依赖配置文件位置和内容,不是插件单方面能决定的。











