VSCode 自带的 TS 版本可能跟项目TS 版本不一样

366 阅读1分钟

VS Code 默认就内置了 TypeScript/JavaScript 语言服务(TypeScript Language Features 扩展) ,这个扩展是编辑器自带的,不需要你额外安装。

具体来说:

  • VS Code 内置了一个 TypeScript Server,它同时为 .ts / .tsx 文件提供语法检查、类型提示、跳转、自动补全等功能;
  • 即使你的项目里没有安装 typescript 包,VS Code 也会使用自带的 TypeScript 版本(通常是内置的一个固定版本);
  • 如果你的项目里安装了 typescript(比如 node_modules/typescript),VS Code 会优先使用你项目里的版本,这样能保证语法检查和编译规则与实际构建保持一致。

你可以在 VS Code 中按下 Ctrl+Shift+P(或 Cmd+Shift+P) ,然后运行命令:

TypeScript: Select TypeScript Version

就能切换使用 VS Code 内置的 TypeScript项目本地的 TypeScript

image.png

所以你经常在项目中遇到格式化之后还是报 type 错误的问题,很可能就是这个原因。

// bar.ts
export interface User {
  id: number
}
export const name = "Alice"

// ✅ 正确写法 (TS 5.0+)
import { type User } from "./bar"
import { name } from "./bar"

// ❌ 错误写法 (TS 5.0+ 会报错)
import { User, name } from "./bar"
//        ~~~~
//        'User' is a type and must be imported using 'import type'.