typescript 聲明文件 繼承擴展其他模塊,擴展String等原生對象,函數不確定參數個數

typescript聲明文件 可以用於js庫兼容ts引入、定義類型使編輯器提示更友好。

本文用於記錄ts聲明文件中一些技巧,不介紹聲明文件的基本用法,基本用法可以參考ts官網。

1. 繼承擴展其他模塊

比如你的一個模塊擴展了 vue,在vue對象上新增了一個方法,那麼在你的聲明文件中這樣定義可以獲得編輯器智能提示:

declare module "vue/types/vue" {
  interface Vue {
    fn():void;
  }
}

找到你希望擴展的對象所在的聲明文件,然後在對象上加上你的方法或者屬性就行,不會覆蓋原有的屬性。
在這裏插入圖片描述

2. 擴展String等原生對象

如果你希望擴展String,Array等原生對象呢?你需要先新建一個文件,比如叫 extend.d.ts,寫入下內容

interface String {
    testFn():void;
}

然後在你的聲明文件中引入這個文件就可以啦:

import './extend';

在這裏插入圖片描述

這裏只演示了String,其他原始對象的擴展也是同理

3. 函數不確定參數個數

當你的一個函數有不缺定個參數的時候,類似於數組的push方法,解決方法就是使用 擴展運算符

declare function fn(...items: Array<string>): string;

上面定義的函數fn支持任意個數的字符串參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章