Vue—17—TypeScript之類、介面、列舉、泛型、型別宣告、tsconfig.js檔案等
阿新 • • 發佈:2021-09-29
一、類
只讀屬性可以在構造器裡賦值,但是賦值之後就不可以修改了;
可以使用訪問器來訪問私有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如何申明?
六、ts.config.json檔案