1. 程式人生 > 其它 >Vue—17—TypeScript之類、介面、列舉、泛型、型別宣告、tsconfig.js檔案等

Vue—17—TypeScript之類、介面、列舉、泛型、型別宣告、tsconfig.js檔案等


一、類

只讀屬性可以在構造器裡賦值,但是賦值之後就不可以修改了;

可以使用訪問器來訪問私有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檔案