类型标记

与 Typescript 类似,Flow 采用后置类型标记,例如格式为function f(a: string): string {}

Flow 中可以使用以下基本类型,这些类型名称的首字母可以为大写。

  • boolean,布尔型。
  • number,数字型。
  • string,字符串型。
  • null,空。
  • voidundefined 类型。
  • ?type,在类型名称前加前缀?,表示可空类型,变量可以是null或者void
  • propertyName?,在对象语法的属性字段名后添加后缀?,表示该属性在对象中可能不会出现。例如{ foo?: string }。用在函数定义中表示可选参数。
  • 字面量,表示变量或者函数参数只能取值指定字面量,常搭配联合类型使用。
  • mixed,可能是任何类型。
  • any,可能是任何类型,类型检查器将不对其进行强制检查。
  • Array<T>,数组类型。
  • [T, T, T],元组类型。
  • T | T | T,联合类型,变量可以是联合类型中的一种。
  • T & T & T,合集类型,变量是所有类型的合集。
  • interface typeName {},接口类型,其中需定义接口中要包含的方法。
  • <T>,泛型类型,用法与 Java、Typescript 中的泛型一致。