抽象類,繼承。不能創造實例
?
class類:屬性聲明,構造器,方法,實例
繼承super()
override重寫父類繼承的方法
?
聲明提升(hoisting)同一個js作用域內部,編譯階段把函數聲明提前到作用域頂部
區分兩者:
函數提前可用是作用域編譯階段的行為(聲明提升)
跨文化提前可用是模塊加載順序的行為(依賴先執行)
類不會聲明提升
屬性的簡寫形式
屬性修飾符:public,protected,private,readonly只讀屬性
?
抽象類abstract,不能被new。不能用new關鍵詞直接創建(實例化)這個類的對象
主要用于繼承
函數名(參數列表){
?? ? ? 函數體
}
何時使用抽象類:定義通用接口,提供基礎實現,共享代碼邏輯
?
interface接口:定義結構的方式
implement定義類
定義對象結構、函數結構
ts的接口可以當成類型用
接口之間的繼承
接口自動合并(可重復定義)
何時用接口?定義對象的格式(描述數據模型,API響應格式,配置對象);類的契約;擴展已有接口
?
interface和抽象類區別
都能定義類的格式
接口:只能描述結構,不能有任何實現代碼,一個類可以實現多個接口
抽象類:可以包含抽象方法,也可以包含具體方法。一個類只能繼承一個抽象類
?
泛型< T >使用類型參數來表示未指定的類型
泛型函數
泛型可以有多個,泛型接口extraInfo
?
類型聲明文件
.d.ts作為拓展名