1、.d.ts是干嘛的
.d.ts文件是ts用來聲明變量,模塊杯缺,type双戳,interface等等,聲明變量之后撩穿,在其他地方可以不用import導入這些東西就可以直接使用,并且有語法提示。有一個重要前提tsconfig.json
文件里的include
需要添加這些文件路徑疮跑,不需要是絕對路徑,匹配這個文件所在的文件夾或者祖宗級別的文件夾凸舵,可以通過glob通配符祖娘。
glob通配符:
*匹配0或者多個字符(不包括目錄分隔)
匹配一個任意字符(不包括目錄分隔)
**/遞歸匹配任意子目錄
2、declare是干嘛的
.d.ts文件中的頂級聲明必須以“declare”或“export”修飾符開頭
通過“declare”聲明的類型或者變量或者模塊啊奄,在include包含的文件范圍內(nèi)渐苏,都可以直接引用而不用去import或者import type相應的變量或者類型。
(1)declare聲明一個類型
declare type Admin {
name: string;
}
在include包含的文件范圍內(nèi)可以直接使用Admin這個type菇夸。
(2)declare聲明一個模塊
declare module '*.css';
declare module '*.less';
declare module '*.png';
在編輯ts文件時琼富,如果你想導入一個.css/.less/.png格式的文件,如果沒有經(jīng)過declare的話是會提示語法錯誤的庄新。
(3)declare聲明一個變量
假如使用了一個sdk鞠眉,這個sdk中有一些全局對象,比如微信的sdk有wx择诈,但是不經(jīng)過任何的聲明在ts文件里面直接用wx.config()的話肯定會報錯械蹋。
總結一句話:declare就是告訴ts編譯器你擔保這些變量和模塊存在并聲明了相應的變量,編譯的時候不需要提示語法錯誤羞芍。
(4)declare聲明一個作用域
declare namespace API {
interface ResponseList {}
}
聲明完之后在其他地方的ts就可以直接API.ResponseList引用到這個接口類型哗戈。
3、注意
(1).d.ts文件頂級聲明declare最好不要跟export同級使用涩金,不然其他ts文件引用該文件的內(nèi)容時就需要手動import導入
(2)在.d.ts文件里如果頂級聲明不用export的話谱醇,declare和直接寫type暇仲、interface效果是一樣的,其他地方可以直接引用副渴。
declare type Add = {
a: string;
}
type Bdd = {
b: string;
}
可以直接使用Add和Bdd作為某個變量的類型