6. ts. 聲明相關

聲明

1. 聲明文件

當使用第三方庫時,我們需要引用他的聲明文件,擦能獲得對應的代碼補全、接口提示等功能

2. 聲明語句

使用語句定義類型

declare var
declare function
declare class
......

3. 聲明文件

將存放聲明語句的文件稱爲聲明文件,通常會把聲明語句放到一個單獨的文件中(jQuery.d.ts)。
聲明文件必需以 .d.ts 爲後綴

4. 第三方聲明文件

有些庫已經有定義好的聲明文件,我們可以直接下載使用,最好是使用 @types 統一管理第三方庫的聲明文件。

npm install @type/第三方庫 --save-dev
eg: npm install @type/jquery --save-dev

第三方庫聲明文件查詢鏈接

5. 書寫聲明文件

當一個第三方庫沒有提供聲明文件時,我們需要自己書寫聲明文件,不同場景下,聲明文件的內容和使用方式不同:

  • 全局變量:

       通過 <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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章