vscode (1.41.0版本,1.41.1版本)node_modules部分TS聲明文件@types包會導致該版本沒JS語法提示


正常提示如下:

 

 

然而我的提示沒了,本以為是插件問題,把所有插件禁用不行!卸載重裝vscode還是不行!!但是其他電腦的1.41.1版本,同樣代碼確沒問題!!!簡直日了*了

折騰大半天,發下問題如下:

 

如果剛好你的項目沒了語法提示,又剛好是1.41版本,再剛好你的項目有@types/node@12.12.9、再有@types/events@3.0.0、還有項目自身package.json文件,再完美的跟我的電腦一樣有坑,那么恭喜你,你觸發了隱藏關卡:

 

1.2X 和 1.3X版本無此問題,只有最新兩個版本發現此問題,其他版本未測試。

詳細版本信息如下:

版本: 1.41.1 (user setup)
提交: 26076a4de974ead31f97692a0d32f90d735645c0
日期: 2019-12-18T14:58:56.166Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Windows_NT x64 6.1.7601

代碼目錄結構:

 

找到問題原因,那么再說說怎么解決。沒去翻vscode源碼,只說說治標不治本的方法:

方法1:刪除項目中的package.json

方法2:刪除@types/node/**.d.ts任意文件,上圖中node目錄下的幾個ts文件,任意刪除一個即可(如果你不怕代碼運行報錯的話)

方法3:刪除@types/events/**,上圖中events目錄下的兩個文件,任意刪除一個(如果你不怕代碼運行報錯的話)


上面是采用刪除文件方法,再來說下如何用改代碼方法解決問題:

方法1:將@types/events@3.0.0/index.d.ts聲明的Listener改個名字,注意本文件中所有變量名都要修改

export type Listener = (...args: any[]) => void;

為什么該方法可行?說實話本菜鳥不知道!!!

方法二:將@types/events@3.0.0/package.json中的( "name": "@types/events", )字段刪除,說實話,我真不知道這name字段哪點礙着vscode了!!!

 

不知道這個坑出在vscode哪點地方,只記錄下解決辦法。

 

出現問題的文件下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM