省流总结
如果有人遇到项目突然无法通过ts类型检查,并且又急需要项目可以启动或者打包,首先应该检查vscode内置的typescript版本,方法是:
在vscode中按Ctrl + Shift + P,然后输入TypeScrip,然后应该会有一个选择TypeScrip版本这样的选项,点击可以选择使用vscode内置的ts,或者项目自己npm安装的。
使用这个方法可以确保你的项目是使用自己的ts版本,规避掉ts版本问题导致的项目突然无法使用
下面是我遇到的具体问题
我有一个后端项目使用midwayjs框架,是typescript写的nodejs框架。 之前一直正常使用,在某次间隔了一个月进行维护的时候发现,项目中出现大量ts类型检查的报错,以及打包的时候无法通过一些类型检查。而且报错的很多内容是很久没有变动过的。
我的思路是,首先检查打包时候报错的内容,根据报错提示进行修改。不会的地方就结合AI辅助,修改了几处问题后可以正常打包。
然后我就在思考为什么长期不动的代码会突然无法通过类型检查。最后我发现了原因。
我的项目使用pnpm安装的typescript是4.x版本的,但是vscode内置的typescript是6.x版本的。应该是我长时间不用vscode,然后它更新的时候更新了版本,并且默认使用了它自己内置的typescript,导致我项目之前的一些不严谨写法无法通过检查了。