hack類型別名:簡介

2018-11-17 11:11 更新

一個(gè)類型別名是一個(gè)類型說明符或定義的縮寫名稱。一旦定義了類型別名,幾乎可以在任何允許關(guān)聯(lián)類型的上下文中使用它。instanceof由于泛型的技術(shù)限制,唯一的上下文類型別名是不允許的。

任何給定的類型都可以有多個(gè)別名,并且類型別名本身可以具有別名。類型別名可以是參數(shù)化的或通用的。

被別名的類型可以是任何東西。這可能是那樣簡單int,string或類類型的名稱; 或者像地圖類型的數(shù)組,元組或形狀一樣復(fù)雜。

在以下示例中:

  • Counter被定義為一個(gè)別名int。
  • Point被定義為兩個(gè)元組的別名int。
  • Estimate被定義為用于一個(gè)別名Pair的int和float。
  • StringTransformer被定義為可返回空 值的調(diào)用的別名string。
  • MyCallback<T>被定義為返回的通用 可調(diào)用的別名void。
<?hh
type Counter = int;
newtype Point = (int, int);
newtype Estimate = Pair<int, float>;
newtype StringTransformer = (function(string): ?string);
newtype MyCallback<T> = (function(T): void);

newtype和type關(guān)鍵字

類型別名是使用newtype和type關(guān)鍵字創(chuàng)建的,使用的別名newtype是一個(gè)不透明的類型別名,使用創(chuàng)建的別名type是透明類型別名。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號