TypeScript介面與類的使用

メSerendipity發表於2021-01-15

一.TypeScript介面 Interfaces

可以約定一個物件的結構 一個物件去實現一個介面 就必須擁有這個介面中所有的成員用interface定義介面,

並且定義介面中成員的型別 編譯之後會發現typeScript中的介面只是對成員做型別約束的

 

定義string型別的key值和value值介面

二.類的概念

描述一類具體事物的抽象特徵,以生活中為例,比如汽車是一個類,比亞迪,寶馬,賓士屬於子類,除了有父級的共同特點4個輪胎,

一個方向盤之外,還有自己獨有的特性。ES6之前 JavaScript沒有類的概念 ,ES6之後有了Class類的概念,TypeScript增強了Class的

相關語法。舉例說明:

類的訪問修飾符

public 公有屬性 沒有限制
private 私有屬性 只能在類的內部去訪問 如果在類的外部訪問的話 會報錯
protected 受保護屬性 與private區別是可繼承父類的方法和屬性

類與介面

比如說人和動物是兩個類,他們有共同的特點就是吃和跑,則吃和跑就是人和動物的介面,但是動物的吃和跑與人的吃和跑畢竟不一樣,

所以是兩個類,而不是一個類的繼承。像C#,java這些語言更傾向於一個能力設定為一個介面,因為吃和跑不是同時進行的,這樣設

計的話能使程式碼更細化 如下圖所示:

TypeScript 抽象類

抽象類一定程度上跟介面的定義差不多,約束子類中必須有某一個成員,不同於介面的是抽象類可以包含一些具體的實現,抽象類一

般指的大的方向類,打個比方:動物就是抽象類,定義抽象類之後 只能夠繼承 不能再使用new的方式去建立例項物件了,定義抽象

類的方式 abstract 如下圖所示:

TypeScript 泛型

定義函式或者介面或者類的時候沒有指定具體的型別 使用的時候再去指定具體型別的這樣一種特徵這樣做的目的是極大可能的複用

我們的程式碼 舉例如下圖所示:

上圖所示泛型為number型別,如果為string型別的話 這段程式碼就不能用了,所以我們可以用一個引數T代表型別 如下圖所示:

相關文章