sublime text 默认不识别 .ts 文件类型定义,因其本身不内置 typescript 类型系统,需通过 lsp 插件调用项目级 tsserver 实现智能提示;须配置 lsp-typescript 使用 workspace ts 版本、确保 tsconfig.json 位置正确且配置合理、启用 node 模块解析及别名支持。

为什么 Sublime Text 默认不识别 .ts 文件的类型定义?
Sublime Text 本身不内置 TypeScript 类型系统,LSP 插件只是个桥梁,真正提供智能提示的是 tsserver(TypeScript 官方语言服务)。如果没正确绑定,你会看到“no definitions found”或补全只来自语法高亮,而非类型推导。
关键点在于:LSP 插件必须找到本地项目里的 node_modules/typescript,而不是全局安装的版本;否则路径解析、JSX 支持、tsconfig.json 读取都会出问题。
如何让 LSP-typescript 正确加载项目级 tsserver?
装好 LSP 和 LSP-typescript 后,默认它会走全局 tsserver。但多数项目依赖特定 TS 版本(比如 v4.9),必须手动指定路径。
- 打开
Preferences → Package Settings → LSP-typescript → Settings - 在用户设置里加这段:
{ "command": ["npx", "--no-install", "tsc", "--serve"], "initializationOptions": { "typescriptVersion": "useWorkspaceTsdk" } } - 确保项目根目录有
node_modules/typescript(npm install typescript --save-dev) - 重启 Sublime 或用
Ctrl+Shift+P → LSP: Restart Servers
tsconfig.json 不生效?检查这三个地方
即使 tsserver 跑起来了,include、compilerOptions.jsx、baseUrl 等配置不被识别,提示就会退化成“any”泛滥。
立即学习“前端免费学习笔记(深入)”;
-
LSP-typescript只读项目根目录的tsconfig.json,子文件夹里的不认 - 如果用了
extends,确保被继承的配置文件路径是相对tsconfig.json的,且存在 -
jsx设为"preserve"或"react-jsx"才能解析.tsx中的 JSX 元素;设成"react"会丢掉类型信息
为什么 import 补全卡顿或缺失?
不是网络问题,是 tsserver 没开启模块解析缓存,尤其在 node_modules 大的项目里。
- 在
tsconfig.json加上:"moduleResolution": "node"
- 确认
"allowSyntheticDefaultImports"和"esModuleInterop"都设为true,否则 ESM/CJS 混合导入补全失败 - 避免在
tsconfig.json里写"files": []—— 这会让tsserver忽略所有自动推导,只处理列表内文件
路径别名(baseUrl + paths)要配合 "moduleResolution": "node" 才生效,否则 @/components 这类 alias 根本不进补全列表。










