利用types增強(qiáng)vscode中js代碼提示功能詳解
使用 types 增強(qiáng)vscode中javascript代碼提示功能
微軟的vscode編輯器是開發(fā)typescript項(xiàng)目的不二首選,其本身也是采用typescript開發(fā)的。
使用過ts的同學(xué)都知道 *.d.ts 類型聲明文件,其管理工具,從最初的 tsd,到后來的 typings,一直到現(xiàn)在的@types,類型聲明文件為ts的智能提示,類型檢查提供了有力支持。
我們也可以使用類型聲明文件,增強(qiáng)vscode編輯javascript時(shí)的智能提示。
關(guān)于vscode這方面更深的說明,請?jiān)L問以下鏈接:
1、https://code.visualstudio.com/docs/languages/javascript
2、https://github.com/Microsoft/TypeScript/wiki/JavaScript-Language-Service-in-Visual-Studio
3、https://code.visualstudio.com/docs/editor/intellisense
安裝 types 文件
現(xiàn)在,我們可以不依賴typings直接使用npm安裝所需要的types類型文件。
比如,我們要安裝sequelize的類型文件,可以直接使用:
npm install @types/sequelize --save-dev
安裝完成后,我們在 node_modules目錄下發(fā)現(xiàn)有一個(gè)@types目錄,該目錄里就是所安裝的所有的類型聲明文件。
如果有的第三方npm包官方未提供類型聲明文件時(shí),可能會安裝出錯(cuò),找不到相應(yīng)的包。這時(shí),就沒法利用其增強(qiáng)js代碼的提示功能。
如果你熟悉使用ts如何編寫*.d.ts文件,也可以自己寫一個(gè)。
配置 jsconfig.json 文件
對于jsconfig.json文件的詳細(xì)說明,請參照這里。
在jsconfig.json文件中添加:
"include": [ "model/**", "service/**" ], "typeAcquisition": { "include": [ "sequelize" ] }
其中typeAcquisition參數(shù)是必配的,標(biāo)識啟用類型感知功能,里面的include標(biāo)識對哪個(gè)包啟用。
上面的include不是必須的,只是用來標(biāo)識jsconfig.json文件對哪些文件起作用。
開啟后,如圖:
我們上圖中例子提示的就是sequelize包中Model類的實(shí)例方法和屬性。
vscode對智能感知的圖標(biāo),也給了一定的匯總:
在js文件中啟用語義檢查
如果要在js中啟用類型檢查,可以在文件最上面添加 // @ts-check 注釋。
// @ts-check let easy = 'abc' easy = 123 // Error: Type '123' is not assignable to type 'string'
或者在 jsconfig.json中進(jìn)行配置:
{ "compilerOptions": { "checkJs": true }, "exclude": [ "node_modules" ] }
詳情請參閱文檔
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別解析
var可以穿透控制語句、條件語句這樣的作用域,導(dǎo)致變量沖突經(jīng)常發(fā)生,這篇文章主要介紹了ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別,需要的朋友可以參考下2022-09-09JS數(shù)組去重常用方法實(shí)例小結(jié)【4種方法】
這篇文章主要介紹了JS數(shù)組去重常用方法,結(jié)合實(shí)例形式總結(jié)分析了4種常用的數(shù)據(jù)去重實(shí)現(xiàn)方法,涉及javascript數(shù)組的遍歷、判斷、追加等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05JS中精巧的自動(dòng)柯里化實(shí)現(xiàn)方法
給大家詳細(xì)分析了JS中精巧的自動(dòng)柯里化實(shí)現(xiàn)方法并通過代碼實(shí)例分析了過程和原理,參考學(xué)習(xí)下吧。2017-12-12高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素
例如處理事件的時(shí)候,有時(shí)候需要知道當(dāng)前點(diǎn)擊的是第幾個(gè)子節(jié)點(diǎn),而HTML DOM本身并沒有直接提供相應(yīng)的屬性,需要自己來計(jì)算。感興趣的朋友可以了解下本文2013-10-10JavaScript腳本性能優(yōu)化注意事項(xiàng)
本文總結(jié)了我在JavaScript編程中所找到的提高JavaScript運(yùn)行性能的一些方法,其實(shí)這些經(jīng)驗(yàn)都基于幾條原則2008-11-11