欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用types增強(qiáng)vscode中js代碼提示功能詳解

 更新時(shí)間:2017年07月07日 09:47:53   作者:coolcao  
這篇文章主要給大家介紹了如何增強(qiáng)vscode中js代碼提示功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。

使用 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)文章

  • js的延遲執(zhí)行問題分析

    js的延遲執(zhí)行問題分析

    使用JavaScript可以實(shí)現(xiàn)代碼的延時(shí)執(zhí)行,也就是說當(dāng)一個(gè)函數(shù)被調(diào)用時(shí)不立即執(zhí)行某些代碼,而是等一段指定的時(shí)間后再執(zhí)行,這就叫做計(jì)時(shí)事件。
    2014-06-06
  • ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別解析

    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-09
  • JavaScript模塊化原理深入分析

    JavaScript模塊化原理深入分析

    JavaScript中的模塊化是指將每個(gè)js文件會被認(rèn)為單獨(dú)一個(gè)的模塊。模塊之間是互相不可見的。如果一個(gè)模塊需要使用另一個(gè)模塊,那么需要通過指定語法來引入要使用的模塊,而且只能使用引入模塊所暴露的內(nèi)容
    2022-11-11
  • JS數(shù)組去重常用方法實(shí)例小結(jié)【4種方法】

    JS數(shù)組去重常用方法實(shí)例小結(jié)【4種方法】

    這篇文章主要介紹了JS數(shù)組去重常用方法,結(jié)合實(shí)例形式總結(jié)分析了4種常用的數(shù)據(jù)去重實(shí)現(xiàn)方法,涉及javascript數(shù)組的遍歷、判斷、追加等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • JS堆棧內(nèi)存的運(yùn)行機(jī)制詳解

    JS堆棧內(nèi)存的運(yùn)行機(jī)制詳解

    棧內(nèi)存主要用于存儲各種基本類型的變量,包括Boolean、Number、String、Undefined、Null,以及對象變量的指針(地址值),這篇文章主要介紹了JS堆棧內(nèi)存的運(yùn)行機(jī)制,需要的朋友可以參考下
    2022-06-06
  • JS中精巧的自動(dòng)柯里化實(shí)現(xiàn)方法

    JS中精巧的自動(dòng)柯里化實(shí)現(xiàn)方法

    給大家詳細(xì)分析了JS中精巧的自動(dòng)柯里化實(shí)現(xiàn)方法并通過代碼實(shí)例分析了過程和原理,參考學(xué)習(xí)下吧。
    2017-12-12
  • 高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素

    高效的獲取當(dāng)前元素是父元素的第幾個(gè)子元素

    例如處理事件的時(shí)候,有時(shí)候需要知道當(dāng)前點(diǎn)擊的是第幾個(gè)子節(jié)點(diǎn),而HTML DOM本身并沒有直接提供相應(yīng)的屬性,需要自己來計(jì)算。感興趣的朋友可以了解下本文
    2013-10-10
  • JavaScript實(shí)現(xiàn)下拉列表

    JavaScript實(shí)現(xiàn)下拉列表

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)下拉列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • JavaScript腳本性能優(yōu)化注意事項(xiàng)

    JavaScript腳本性能優(yōu)化注意事項(xiàng)

    本文總結(jié)了我在JavaScript編程中所找到的提高JavaScript運(yùn)行性能的一些方法,其實(shí)這些經(jīng)驗(yàn)都基于幾條原則
    2008-11-11
  • 深入理解JS中的Promise.race控制并發(fā)量

    深入理解JS中的Promise.race控制并發(fā)量

    這篇文章主要為大家介紹了JS中的Promise.race控制并發(fā)量的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評論