TypeScript type 型別別名

admin發表於2019-04-28

在實際應用中,有些型別名字比較長或者難以記憶,重新命名是一個較好的解決方案。

TypeScript可以通過type關鍵字給型別重新命名,看如下程式碼例項:

[typescript] 純文字檢視 複製程式碼
interface T1 {
  a: boolean;
  b: string;
}
 
interface T2 {
  a: boolean;
  b: number;
}
 
type T = T1 & T2;

上面的程式碼將交叉型別T1&T2重新命名為T。

如果說上面的程式碼演示有一點點複雜,下面看一個極其簡單的程式碼:

[typescript] 純文字檢視 複製程式碼
type ant = string;
let str:ant="螞蟻部落";

別名不會新建一個型別,而是建立一個新名字來引用此型別。

泛型別名:

TypeScript1.6版本開始支援為泛型提供別名,首先看一段程式碼例項:

[typescript] 純文字檢視 複製程式碼
type ant=string | (() => string)

上面為一個非泛型的聯合型別重新命名;聯合型別參閱TypeScript 聯合型別一章節。

[typescript] 純文字檢視 複製程式碼
type ant<T>=T | (() => T)

上面是為一個泛型相關型別重新命名。

型別別名和介面的區別:

通過上面的介紹,型別別名與介面有一些類似之處,但是區別也是很明顯的:

(1).錯誤資訊不會使用別名。

(2).介面是建立一個新的型別,別名不會建立一個新型別,是對原有型別的引用。

(3).即使使用別名,編輯器只能提示還是會顯示原有型別名稱:

a:3:{s:3:\"pic\";s:43:\"portal/201904/28/091601xc8lm6cwinoz6owo.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

相關文章