天天看點

TypeScript 基礎類型、變量聲明、函數、聯合類型、接口

一、基礎類型

1、任意類型any

2、數字類型number

3、字元類型string

4、布爾類型boolean

5、數組類型(無關鍵字)

  定義存儲各種類型資料的數組時

6、元組:元組類型用來表示已知元素數量和類型的數組,各元素的類型不必相同,對應位置的類型需要相同。

7、枚舉enum:枚舉類型用于定義數值集合。

8、void,用于辨別方法傳回值的類型,表示該方法沒有傳回值。

9、null,表示對象值缺失

10、undefined,用于初始化變量為一個未定義的值

11、never,代表不會出現的值。這意味着聲明為 never 類型的變量隻能被 never 類型所指派,在函數中它通常表現為抛出異常或無法執行到終止點(例如無限循環)

注意:

  在typescript中啟用嚴格的空校驗(--strictnullchecks)特性,就可以使得null 和 undefined 隻能被指派給 void 或本身對應的類型

  可以用 | 來支援多種類型,比如:

二、變量聲明

1、ts的變量命名規則:不能以數字開頭,不能包含下劃線_和美元符号$之外的特殊字元

2、聲明變量方式:

  4種方式,沒有類型那麼類型就是any;沒有值,那麼值就是undefined。

三、函數

1、函數傳回值

2、帶參數函數

3、帶可選參數和預設參數

  在 typescript 函數裡,如果我們定義了參數,則我們必須傳入這些參數,除非将這些參數設定為可選,可選參數使用問号辨別 ?。

  将 lastname 設定為可選參數:

  注意:可選參數必須跟在必需參數後面。 如果上例我們想讓 firstname 是可選的,lastname 必選,那麼就要調整它們的位置,把 firstname 放在後面。如果都是可選參數就沒關系。

  我們也可以設定參數的預設值,這樣在調用函數的時候,如果不傳入該參數的值,則使用預設參數,文法格式為:

  注意:參數不能同時設定為可選和預設。

4、剩餘參數

  有一種情況,我們不知道要向函數傳入多少個參數,這時候我們就可以使用剩餘參數來定義。剩餘參數文法允許我們将一個不确定數量的參數作為一個數組傳入。

  函數的最後一個命名參數 restofname 以 ... 為字首,它将成為一個由剩餘參數組成的數組,索引值從0(包括)到 restofname.length(不包括)。

5、函數重載

  重載是方法名字相同,而參數不同,傳回類型可以相同也可以不同。

  每個重載的方法(或者構造函數)都必須有一個獨一無二的參數類型清單。

  比如:參數類型不同、參數數量不同、參數類型順序不同

四、聯合類型

  聯合類型(union types)可以通過管道 ( | ) 将變量設定多種類型,指派時可以根據設定的類型來指派。

  注意:隻能指派指定的類型,如果指派其它類型就會報錯。

  建立聯合類型的文法格式如下:type1|type2|type3

五、接口

1、接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應該是抽象的,需要由具體的類去實作,然後第三方就可以通過這組抽象方法調用,讓具體的類執行具體的方法。

  我們定義了一個接口 iperson,接着定義了一個變量 customer,它的類型是 iperson。

  customer 實作了接口 iperson 的屬性和方法。

  聯合類型和接口

2、接口繼承

  接口繼承就是說接口可以通過其他接口來擴充自己。

  typescript 允許接口繼承多個接口。

  繼承使用關鍵字 extends。

  單接口繼承文法格式:child_interface_name extends super_interface_name

  多接口繼承文法格式:child_interface_name extends super_interface1_name, super_interface2_name,…,super_interfacen_name

  繼承的各個接口使用逗号 , 分隔。