typescript 基本語法詳解

1、.d.ts是干嘛的

.d.ts文件是ts用來聲明變量,模塊,type,interface等等,聲明變量之后,在其他地方可以不用import導(dǎo)入這些東西就可以直接使用,并且有語法提示。有一個(gè)重要前提tsconfig.json文件里的include需要添加這些文件路徑,不需要是絕對路徑,匹配這個(gè)文件所在的文件夾或者祖宗級別的文件夾,可以通過glob通配符。
glob通配符:
*匹配0或者多個(gè)字符(不包括目錄分隔)
匹配一個(gè)任意字符(不包括目錄分隔)
**/遞歸匹配任意子目錄

2、declare是干嘛的

.d.ts文件中的頂級聲明必須以“declare”或“export”修飾符開頭
通過“declare”聲明的類型或者變量或者模塊,在include包含的文件范圍內(nèi),都可以直接引用而不用去import或者import type相應(yīng)的變量或者類型。
(1)declare聲明一個(gè)類型

declare type Admin {
  name: string;
}

在include包含的文件范圍內(nèi)可以直接使用Admin這個(gè)type。
(2)declare聲明一個(gè)模塊

declare module '*.css';
declare module '*.less';
declare module '*.png';

在編輯ts文件時(shí),如果你想導(dǎo)入一個(gè).css/.less/.png格式的文件,如果沒有經(jīng)過declare的話是會提示語法錯(cuò)誤的。
(3)declare聲明一個(gè)變量
假如使用了一個(gè)sdk,這個(gè)sdk中有一些全局對象,比如微信的sdk有wx,但是不經(jīng)過任何的聲明在ts文件里面直接用wx.config()的話肯定會報(bào)錯(cuò)。
總結(jié)一句話:declare就是告訴ts編譯器你擔(dān)保這些變量和模塊存在并聲明了相應(yīng)的變量,編譯的時(shí)候不需要提示語法錯(cuò)誤。
(4)declare聲明一個(gè)作用域

declare namespace API {
  interface ResponseList {}
}

聲明完之后在其他地方的ts就可以直接API.ResponseList引用到這個(gè)接口類型。

3、注意

(1).d.ts文件頂級聲明declare最好不要跟export同級使用,不然其他ts文件引用該文件的內(nèi)容時(shí)就需要手動import導(dǎo)入
(2)在.d.ts文件里如果頂級聲明不用export的話,declare和直接寫type、interface效果是一樣的,其他地方可以直接引用。

declare type Add = {
  a: string;
}
type Bdd = {
  b: string;
}

可以直接使用Add和Bdd作為某個(gè)變量的類型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容