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