【VSCode】TypeScript错误:表达式生成的联合类型过于复杂,无法表示。ts(2590)

1,680 阅读1分钟

产生情况

自从VSCode更新之后,今天在维护公司之间的项目时,有一些tsx文件报出了“表达式生成的联合类型过于复杂,无法表示。ts(2590)”错误。并且智能提示需要加载好久,甚至直接无法使用,文件之间关联跳转也需要好久才能定位到目标文件。

image.png

为什么会这样

在笔者多次百度、Google无果后,在查看VSCode的更新日志中,偶然间发现新版的VSCode(1.77)更新了将默认的Typescript版本更新至了5.0。

image.png

但在我项目中的Typescript版本是4.9,在尝试修改Typescript版本后,上述的问题都得以解决。

image.png

如果操作

可以升级项目的Typescript版本,或者可以在项目的工作区做单独的配置,指定为项目的node_modules中安装的Typescript版本:

{
  "typescript.tsdk": "node_modules/typescript/lib"
}

或者:

  1. 打开任意一个JS或TS文件
  2. Ctrl + Shift + P 打开命令行
  3. 输入Select TypeScript Version

image.png

  1. 选择使用工作区版本 x.x.x

image.png