TS-13 d.ts

  • d.ts文件如果加了import/export,就不能全局使用了,除非把聲明放在 declare global 里面
declare global {
  interface X {}
}
  • 擴展庫的模塊,以axios為例:
import {AxiosRequestConfig} from 'axios';

declare module 'axios' {
  export interface AxiosRequestConfig {
    _autoLoading?: boolean;
  }
}
  • 如果想給window加全局變量:
// 全局變量
declare var Cesium: any
  • 想要在d.ts中聲明函數類型:
function sum(a:number): number // declare 可加可不加
  • ts文件中引入js變量會報錯,這時候就需要自己聲明一個與js文件同名.d.ts文件,然后根據js導出的內容,用ts一一聲明
    image.png
  • tsconfig.json
"lib": [
      "dom", // lib.dom.ts,瀏覽器的 api
      "dom.iterable",
      "esnext" // js 的 api
    ],
  • 自己寫ts庫的話,
  1. 沒用工程化環境的情況:.d.ts是可以自動生成的,然后要在tsconfig.jsontypes選項中表明.d.ts文件的路徑
tsc -d main.js  // 會生成 main.d.ts
  1. 工程化環境:tsconfig.json里添加declaration: true
  • 控制加載某個包的types定義


    image.png
  • 總結


    image.png
  • 發布ts包
tsc init
tsc
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容