注释类型(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 */ {
// ...
}