问题
最近在实习过程中项目使用到了TS,但是前一天代码还好好的,第二天上午过来更新了一下vscode,项目突然就出现ts的提示了,如图
然后我又打开了几个文件,发现只要是动态访问属性的地方都出现了这个提示,例如:
aObj[key] = bObj[key];
类似上述的代码,复制或者访问,都出现了这种提示。
解决
方法一
在ts接口中定义:
[key:string]: any
这种写法可以解决,但是需要在项目中改动几十处,而且根源问题肯定不是在这里,因为前一天还没出现这个ts提示。
方法二
最后去群里问了一嘴,群内大佬给出了正确答案———vscode的ts版本和工作区(也就是项目的ts版本)不一致,解决方法
然后选择
使用工作区版本
这样就解决了,或者在
settings.json
配置文件中新增"typescript.tsdk": "node_modules/typescript/lib",也可以解决这个问题。
总结
项目的ts版本可能和vscode的版本不一致,在开发时最好直接选择使用项目的版本。