hack类型别名:简介

2018-11-17 11:11 更新

一个类型别名是一个类型说明符或定义的缩写名称。一旦定义了类型别名,几乎可以在任何允许关联类型的上下文中使用它。instanceof由于泛型的技术限制,唯一的上下文类型别名是不允许的。

任何给定的类型都可以有多个别名,并且类型别名本身可以具有别名。类型别名可以是参数化的或通用的。

被别名的类型可以是任何东西。这可能是那样简单int,string或类类型的名称; 或者像地图类型的数组,元组或形状一样复杂。

在以下示例中:

  • Counter被定义为一个别名int。
  • Point被定义为两个元组的别名int。
  • Estimate被定义为用于一个别名Pair的int和float。
  • StringTransformer被定义为可返回空 值的调用的别名string。
  • MyCallback<T>被定义为返回的通用 可调用的别名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关键字

类型别名是使用newtype和type关键字创建的,使用的别名newtype是一个不透明的类型别名,使用创建的别名type是透明类型别名。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号