一、類
只讀屬性可以在構造器里賦值,但是賦值之后就不可以修改了;
可以使用訪問器來訪問私有private的屬性;這個比java語言要自己寫setNmae()和getName()方法要方便一些,但是都差不多;
二、接口
接口和type都可以實現對象類型的定義,
但是interface可以對同一個名字重復定義並且將同一名字的屬性合並,type由於只是個別名所以不可以重復。
推薦使用interface定義對象;
字面量賦值:
ts說白了就是幫助我們進行數據類型檢測的,有些時候它的類型檢測可能並不智能,這個時候可以使用這種方式跳過它的類型檢測;
三、枚舉
枚舉首先也是一種數據類型, 有點類似字面量類型+聯合類型的綜合體;
就是我們自定義一些 名稱常量等;
但是枚舉的可讀性非常強,我們可以使用枚舉名.屬性名;
使用type來定義一個數據類型;
使用enum來定義一個常量集合;
枚舉默認按照順尋有0,1,2,3等值;
四、泛型
4.1什么是泛型?
實際上就是類型的參數化,將我們的類型在定義的時候不要寫死,具體是什么類型由調用者傳入的參數來決定;
但是又不要用any來定義,如果是any那么以后返回的類型也是any了,但是使用泛型,以后返回的類型就是調用者所傳入的;
4.2 類型變量type,將不確定類型使用type這個參數替代
4.3 多個類型,多個參數替代
4.4 接口和類的泛型
除了函數可以使用泛型之外,接口和類在定義的時候,也可以使用泛型;
4.5泛型約束
通過讓泛型繼承一個接口,而使得這個泛型有了一定的約束,有了傳入過來的參數必須要有的屬性,變得沒那么廣泛了;
五、ts的模塊化
js有模塊化開發,ts也肯定有,並且除了js的esModule方式,還支持CommonJs方式;
5.2類型查找
5.3類型申明
ts使用第三方庫、使用文件(圖片文件等)一定要在.d.ts文件里有類型申明;
- 內置聲明:ts幫助我們申明好了;
- 外部定義申明:我們引入的第三方庫會有自己申明好的;或者下載別人神明好的文件;
- 自定義申明: 自己申明,記住,只是申明有這個東西即可,不需要在.d.ts里實現,具體實現應該在其他文件;
如果申明了,才可使用import等方式導入吧;
5.4如何申明?