Flow注释类型(Comment Types)

注释类型(Comment Types)

Flow中的JavaScript使用一种特殊的注释语法。

Flow支持基于注释的语法,可以使用Flow而无需编译文件。

// @flow

/*::
type MyAlias = {
  foo: number,
  bar: boolean,
  baz: string,
};
*/

function method(value /*: MyAlias */) /*: boolean */ {
  return value.bar;
}

method({ foo: 1, bar: true, baz: ["oops"] });

这些注释使得Flow可以在纯JavaScript文件中存在。

注释类型语法

有两种主要的语法:类型包含与类型注释注解。

类型包含

使用::开始一段注释。

/*::
type Foo = {
  foo: number,
  bar: boolean,
  baz: string
};
*/

class MyClass {
  /*:: prop: string; */
}

上面这段代码在Flow中看起来是这样的:

type Foo = {
  foo: number,
  bar: boolean,
  baz: string
};

class MyClass {
  prop: string;
}

但是在JavaScript会屏蔽这些注释,所以看起来如下:

class MyClass {

}

你还可以使用flow-include的格式:

/*flow-include
type Foo = {
  foo: number,
  bar: boolean,
  baz: string
};
*/

class MyClass {
  /*flow-include prop: string; */
}
注释类型注解

使用:开始一段注释:

function method(param /*: string */) /*: number */ {
  // ...
}

你可能感兴趣的:(Flow注释类型(Comment Types))