1

在Visual Studio代碼(VSCode)中,我正在使用JavaScript ES5的遺留應用程序。我注意到IntelliSense不適用於我安裝的所有類型。 Intellisense正在爲全球類型工作,但不適用於外部類型?由於這是遺留代碼,我寧願不更改源.js文件以使Intellisense正常工作。Visual Studio Code Intellisense和JavaScript ES5

全球類型的Intellisense,如角和jquery,似乎工作。但是,用於外部類型的智能感知不起作用。

在這裏你可以看到我有四種類型的安裝。 Angular和jQuery被安裝爲全局變量。 LoDash和Ramda作爲外部安裝。我有一個jsconfig.json文件創建;它是空的。通過使用jsconfig.json文件,IntelliSense適用於Angular和Jquery,但不適用於LoDash和Ramda。

VSCode Typings

在接下來的兩個圖像,你可以看到,智能感知工作角和jQuery。

VSCode Typings with Angular

VSCode Typings with jQuery

現在,我使用LoDash,但智能感知不工作。

VSCode Typings with LoDash

如果我導入LoDash庫,然後智能感知的作品。由於代碼是傳統的ES5 JavaScript和導入不支持ES5,使用導入不是一個可行的選擇。

VSCode Typings with LoDash and imports

一個好的測試將得到智能的LoDash工作。我想輸入「_」。並讓VSCode顯示LoDash屬性和方法的列表,而不在源代碼中包含任何其他代碼。

有誰知道如何解決這個問題?如果是這樣,請提供對您有用的東西。

資源

BarDev

+0

類型特定於TypeScript(因此您看到「.ts」文件結尾)。更改文件名爲「main.ts」,我猜它會起作用。將TypeScript編譯器設置爲定位ES5,就完成了。 –

+0

@MikeMcCaughan - 基於我的解毒證據,intellisense與AngularJS和jQuery一起使用,沒有擴展名爲「.ts」的文件。同樣在VSCode文檔中,它討論了JavaScript文件可以使用智能感知。 JavaScript的 - 豐富的編輯支持 https://code.visualstudio.com/docs/languages/javascript 我在typings.json文件注意到,角度和jQuery位於「globaDependency」,但lodash位於「依賴」。 我的確嘗試在全球安裝lodash類型,但我收到一個錯誤消息,類型是一個外部模塊。 –

+0

我沒有提到任何有關智能感知的內容。我正在專門討論打字,定義文件或「.d.ts」文件。您的屏幕截圖在「typings \ global」下顯示一個「角度」文件夾。可能想在那裏偷看:)。 JavaScript中的Intellisense使用JavaScript分析引擎來發現項目中有關「.js」文件的元數據。 –

回答

2

正如寫在official VS Code JS Intellisense documentation

如果您使用的是Visual Studio代碼1.8+,你可以交替expli citly列出的軟件包可以在您的jsconfig.json中獲得類型。

"typeAcquisition": { 
    "include": [ 
     "lodash" 
    ] 
} 

現在,當你需要或進口lodash,Visual Studio代碼將使用自動下載分型文件庫來提供豐富的智能感知。最常用的JavaScript庫有類型可用。

+1

但是,如果我不想要求或導入lodash,因爲我實際上期待它是我遺留ES5代碼中的全局變量,我該怎麼辦? –

相關問題