sublime text 默认不识别 .ts 文件,需安装 typescriptsyntax 插件并重启,手动选语法后仍显示 plain text 说明语法未注册;无错误提示或跳转失效主因是 tsserver_path 未正确配置或 tsconfig.json 缺失。

Sublime Text 默认打开 .ts 文件就是纯文本,语法高亮不自动生效——这不是插件没装,而是文件类型根本没被识别;装了插件却没错误提示、跳转失效、Ctrl+Click 无反应,90% 是因为 tsserver_path 没配对或本地 tsc 根本不可用。
点击右下角选 TypeScript 语法后还是 Plain Text?
这说明 Sublime Text 4 没加载到正确的语法定义。它不会根据后缀自动绑定,必须靠插件提供 .sublime-syntax 文件并完成注册。
- 确认装的是
TypeScriptSyntax(作者 sublimelsp),不是过时的Typescript Syntax或TypeScript-Sublime-Plugin—— 后两者用的是已淘汰的.tmLanguage格式,在 ST4 下渲染异常甚至完全不显示 - 安装完必须重启 Sublime Text 4,否则新语法包不会被扫描和注册
- 检查
Packages/User/目录下有没有残留的TypeScript.sublime-syntax空文件或旧定义,有就删掉——ST4 会优先加载User/下同名文件,直接屏蔽插件里的正确语法 - 如果项目里有
.sublime-project,打开它查是否有"syntax_override"或"extensions"把ts映射到了JavaScript,这类配置会强制覆盖全局设置
装了 TypeScriptSyntax 却没错误提示、不能跳转?
语法高亮只是前端着色,所有语义功能(类型检查、定义跳转、补全)都依赖本地运行的 tsserver 进程。Sublime 插件本身不带语言服务,只负责转发请求。
- 终端执行
tsc --version和tsserver --version,两个输出必须一致;若后者报command not found,说明node_modules/.bin没进$PATH(macOS/Linux 查echo $PATH,Windows 查系统环境变量中 Node.js 安装路径下的node_modules\.bin) - 推荐用项目级安装:运行
pnpm add -D typescript或yarn add -D typescript,再在插件设置里填"tsserver_path": "./node_modules/.bin/tsserver"(macOS/Linux)或"./node_modules/.bin/tsserver.cmd"(Windows) -
tsserver_path是相对于你用 Sublime 打开的文件夹(即项目根目录)的路径,不是 Sublime 安装目录;填错路径或留空会导致服务静默失败,没有任何报错提示 - 确保项目根目录存在
tsconfig.json,没有它tsserver就降级为无配置模式,strict、paths、jsx全部失效
tsx 文件不识别 JSX 语法、报错“'React' refers to a UMD global”?
.tsx 不是 .ts 的简单扩展,它需要明确启用 JSX 支持,否则会被当作普通 TS 解析,JSX 标签直接报错。
- 先确认已装
TypeScriptSyntax,并在Preferences → Settings – Syntax Specific中加一行:"extensions": ["ts", "tsx"] - 如果用的是
SublimeTSC插件,在其设置里加:"enable_tsx": true - 如果用的是
LSP-typescript,则不用手动开enable_tsx,但要确保tsconfig.json中有"jsx": "react-jsx"或类似有效配置 - 改完
tsconfig.json后必须手动执行TS: Restart Server(Ctrl+Shift+P输入),插件不会自动监听配置变更
为什么装了插件但状态栏左下角不显示 TS?
状态栏左下角显示 TS 是 SublimeTSC 插件启动成功的标志;如果只看到 TypeScript(右下角)但左下角没 TS,说明语言服务器根本没连上。
- 别装
TSCompleteMe或TypeScript-Sublime-Plugin—— 前者多年未更新,不兼容 ST4;后者自带过时内嵌tsserver,不读tsconfig.json,也不支持moduleResolution: bundler - 只装
SublimeTSC(注意名称无空格),安装后打开.ts文件,状态栏左下角应立刻显示TS,右键菜单出现TypeScript子项 - 如果没显示,打开
Preferences → Package Settings → SublimeTSC → Settings,确认"enable_language_service": true已开启,且"tsserver_node_path"指向真实可用的node(用which node查) - 最易忽略的一点:
tsserver_node_path设为空字符串或错路径,SublimeTSC会静默失败,不弹任何提示,只当没装插件用











