TypeScript徹底解讀(26課時)_16.聲明合併


ts編輯器會將名字相同的多個聲明合併爲一個聲明,合併後的聲明,同時擁有多個聲明的特性
example文件夾下新建merging.ts文件

定義相同名字的接口,

定義變量類型是上面的接口。,光寫一個name屬性報錯,提示缺乏age屬性

把name和age同時加上才這個類型就不會報錯了


命名空間、類型、值的聲明編輯器

補充


命名空間其實是建立了一對象,這個對象咱們在js裏面是能夠用的 
函數

合併接口

定義的非函數的成員,命名應該是不重複的
若是這總重複定義了name值就會報錯

兩個的類型都是stirng才能夠

接口裏面的函數成員,每一個同名函數成員,都會被當作函數的重載,合併後,後面的接口會有更高的優先級
先定義接口內的方法getRes參數是sitrng類型,後面又定義了一次getRes方法,can撒胡類型是number


傳入字符串,輸出字符串的長度


傳入數字就輸出轉換爲字符串的數字

上面函數重複定義了就會成爲一個函數的重載3d

命名空間的合併

同名的命名空間,最終會將多個命名空間導出的內容進行合併
上面定義兩次同一個命名空間,裏面分別定義一個函數,其實就至關於定義一次,而後裏面寫倆函數


第一個命名空間內的常量numberReg前面沒加export導出,那麼在下面那個命名空間內是找不到這個常量的


在前面加上export。下面的同名的命名空間內就能夠找到這個常量了嗎,由於這兩個同名的命名空間已經進行合併了
對象

不一樣類型的合併

命名空間和類、函數、枚舉均可以進行合併 
首先是命名空間和類的合併,這裏要求同名的類和命名空間在定義的時候,類的定義必須在命名空間的前面,
最後合併以後的結果,效果,一個包含以一些命名空間導出內容爲靜態屬性的類
同名的類和命名空間,類要定義的命名空間的前面


能夠直接訪問靜態屬性numberReg

使用Validations建立實例就能夠調用checkTypeblog

命名空間和函數

在js中函數也是對象,因此給一個函數設置屬性
函數的定義要放在同名的命名空間前面
定義一個函數

count由於不存在因此這裏會報錯

定義一個命名空間在這上面導出一個變量count設置爲0、上面的count不存在的錯誤已經消失了。、


接口

命名空間和枚舉的合併

能夠經過合併給枚舉拓展內容
定義的前後順序沒有要求。
輸出的012是經過反向映射獲得的。
後面能夠看到多了一個yellow,它的值是3.可是隻有添加yelllow等於3 沒有值是3的yellow

以上就是生命合併


 字符串

相關文章
相關標籤/搜索