1. 程式人生 > >Visual Studio Code 使用 Typings 實現智能提示功能

Visual Studio Code 使用 Typings 實現智能提示功能

style lang adding solid tps play 命令 啟動 visual

前言

我們知道在IDE中代碼的智能提示幾乎都是標配,雖然一些文本編輯器也有一些簡單的提示,但這是通過代碼片段提供的。功能上遠不能和IDE相比。不過最近興起的文本編輯器的新銳 Visual Studio Code 可以通過 Typings 來對 JavaScript 實現智能提示功能,對於一個文本編輯器來說,這點很難得。所以Visual Studio Code 特別適合用來編寫 JavaScript(Node.js)程序; 同時,如果我們需要編寫一些嘗試性的小代碼片段,例如:Lodash.js 某個函數的小Demo,因為我們不想研究一個函數的使用方式而去使用IDE新建一個項目,這時候Visual Studio Code 就是一個非常好的選擇,而且它同樣可以運行和調試 JavaScript

代碼(依賴於 Node.js),並且還包含非常方便的代碼提示功能。

從這點來說,我覺得Visual Studio Code 已經算得上是一個精悍的小型IDE了。

通過NPM安裝Typings

通過 NPM 我們可以很容易的安裝 Typings ,在命令行中輸入:

npm install -g typings

安裝完成後,在命令行中輸入:

typings --version

看到版本信息就表示 typings 工具安裝完成了:

技術分享

NPM是和Node.js一起安裝的,如果你想使用NPM的話,那麽你應該先安裝Node.js

安裝相關提示信息文件

安裝完成後,我們需要安裝相應的需要提示功能庫或者框架的類型信息文件,在這裏我們新建一個文件夾 NodeSnippet

,使用命令行進入到該目錄中,分別輸入下面兩個命令來安裝NodeLodash的類型接口信息文件:

typings install dt~node --global --save
typings install lodash --save

什麽時候需要使用 --global 參數:

  • 如果安裝的包使用script標記來引用(如jQuery)(也就是在瀏覽器中使用)
  • 這個包是屬於環境的一部分(如node)時
  • 該包沒有使用 --global 安裝失敗時

這時候我們可以看到我們的 NodeSnippet目錄中多了一些文件:

技術分享

這些文件就是為我們提供提示信息的類型類型文件(使用TypeScript

定義)。查看Typings是否支持某個庫或框架的智能提示,我們可以使用下面的命令:

typings search exampleName

啟用智能提示功能

通過兩種方式來啟動提示功能:

  • 第一種是在需要進行只能提示的文件最上行增加提示信息文件所在目錄,格式如下:
/// <reference path="./typings/index.d.ts" />
  • 第二種是在項目所在目錄(在這裏是NodeSnippet文件夾中)增加一個名為jsconfig.json的空文件。

更多jsconfig.json文件的內容可以參考:https://code.visualstudio.com/docs/languages/javascript

啟用提示功能後我們就可以非常愉快的使用Visual Studio Code 為我們提供的智能提示功能了。如下所示:

技術分享

註意事項

Typings VS TSD

Typings是作為TSD的替代者而出現的,如果你已經安裝了TSD,那麽需要知道現在TSD已經不推薦使用了。如果已經安裝TSD請執行下面的命令來移除它:

 npm rm -g tsd

使用 CNPM

在國內由於的原因,有時候使用NPM安裝模塊的速度上會很慢,這時候我們其實可以選擇國內淘寶的NPM鏡像,使用下面的命令來進行安裝:

npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝完成後使用cnpm來代替npm命令即可,例如下面安裝一個lodash模塊的示例:

cnpm install lodash 

可以看到除了cnpm替代了npm其他的並沒有任何區別。

參考&進一步閱讀

https://github.com/typings/typings
https://code.visualstudio.com/docs/languages/javascript
https://npm.taobao.org/

Visual Studio Code 使用 Typings 實現智能提示功能