很多人選擇TypeScript而非Javacript作為開發(fā)語言的原因之一揪荣,就是因為TypeScript強大的智能提示功能。TypeScript的智能提示以及其他大量特性是建立在嚴格的類型限定和智能的類型判斷上的,而這個特性能夠在編寫代碼的初期盡早暴露出問題,并且在適當(dāng)?shù)臅r候給你必要的提示。今天我們要來解決的就是在Node.js開發(fā)過程中的智能提示問題他嫡。
我們知道,自己寫的模塊和方法會要求給屬性添加類型庐完,這樣我們在使用的時候自然就能知道類型和其內(nèi)部的方法了钢属。然而我們在開發(fā)中必然要使用大量的第三方庫,而這些庫都是用js寫的门躯,自然就沒有類型這一說淆党。因此,我們需要一份文件讶凉,將這個庫的所有方法和屬性都加上應(yīng)有的類型宁否,這個文件就是d.ts文件。這個文件只是將庫內(nèi)的方法和屬性以Typescript的要求聲明一遍缀遍,不做具體實現(xiàn)慕匠,有點類似iOS的.h頭文件。
由上面可知域醇,獲得d.ts文件是解決第三方庫智能提示的關(guān)鍵台谊。早期,我們通過typings這個第三方平臺來獲取d.ts文件譬挚,比較繁瑣锅铅。而且第三方庫會時常更新,我們的d.ts文件也需要跟隨第三方庫一并更新才行减宣。 Typescript 2.0之后盐须,我們只需要通過npm就可以自動管理和更新d.ts文件。
npm install @types/XXXXX
你可以嘗試將XXXXX替換成你使用的庫漆腌,目前types支持大部分第三方庫贼邓,如果你沒有使用特別偏門的庫,這樣一條命令就可以滿足你的開發(fā)需求闷尿。
當(dāng)我們運行完這條命令后塑径,node_modules目錄下的@types文件夾就會出現(xiàn)這個庫的d.ts文件。對這個文件稍作分析填具,你就能明白這個文件做的事情以及編寫方法统舀,這下如果遇到types里沒有的第三方庫,你也可以自己為他寫一份d.ts文件。
然后你就可以回到自己的代碼中誉简,使用
import * as Koa from "koa"
來引入si庫碉就,開始你愉悅的編碼了。