1. 聲明文件html
當使用第三方庫時,咱們須要引用他的聲明文件,擦能得到對應的代碼補全、接口提示等功能jquery
2. 聲明語句git
使用語句定義類型github
declare var declare function declare class ......
3. 聲明文件npm
將存放聲明語句的文件稱爲聲明文件,一般會把聲明語句放到一個單獨的文件中(jQuery.d.ts)。
聲明文件必需以 .d.ts 爲後綴json
4. 第三方聲明文件spa
有些庫已經有定義好的聲明文件,咱們能夠直接下載使用,最好是使用 @types 統一管理第三方庫的聲明文件。prototype
npm install @type/第三方庫 --save-dev eg: npm install @type/jquery --save-dev
5. 書寫聲明文件code
當一個第三方庫沒有提供聲明文件時,咱們須要本身書寫聲明文件,不一樣場景下,聲明文件的內容和使用方式不一樣:
全局變量:
經過 <script> 標籤引入第三方庫,注入全局變量
npm包:
經過 import dateFormat from 'DateFormat' 導入,符合 ES6 模塊規範
UMD庫:
既能夠經過 <script> 標籤引入,也能夠經過 import 導入
模塊插件:
經過 import 導入後,能夠改變另外一個模塊的結構
直接擴展全局變量:
經過 <script> 標籤引入後,改變一個全局變量的結構。好比爲 String.prototype 新增一個方法
經過導入擴展全局變量:
經過 import 導入後,能夠改變一個全局變量的結構
6. 全局變量
// 假如使用第三方庫jQuery,在html中經過<script>標籤引入jQuery,而後就可使用全局變量$/jQuery了,在ts中使用方法以下: declare var jQuery:(selector:string) => any; jQuery('#id'); // declare var 並無真的定義一個變量,只是定義了全局變量jQuery的類型,僅僅會用於編譯時的檢查,在編譯結果中會被刪除
使用全局變量的聲明文件時,若是是經過 npm install @type/xxx --save-dev 方式安裝的,則不須要任何配置。
若是是將聲明文件 xxx.d.ts 直接存放於當前項目中,最好和其餘源碼放在一個目錄下便於整理。
若是聲明文件沒有生效,能夠檢查一下tsconfig.json中的files、include和exclude配置,確保其包含了jQuery.d.ts文件。
全局變量的聲明文件的語法:
- declare var 聲明全局變量 // declare let/const, let 和 var 沒有什麼區別,使用 const 定義的是常量,不容許修改值,通常全局變量都是禁止修改的常量,因此const更經常使用。 - declare function 聲明全局方法 - declare class 聲明全局類 - declare enum 聲明全局枚舉類型 - declare namespace 聲明全局對象(含有子屬性) - interface 和 type 聲明全局類型
聲明語句中只能定義類型,不能定義具體的值!
declare var