比较Flow中的枚举值

时间:2017-08-07 12:41:35

标签: javascript types flowtype

我使用flow在代码中注释类型。

type Bar = 'One' | 'Two';
function foo(b: Bar) : boolean {
  return b === 'Three';
}

有没有办法让flow报告警告或错误,以便与非匹配类型进行比较(在我的情况下为string)?

here is the example for test

编辑所以似乎无法使用枚举进行。但是,由于这实际上是我遇到的一个错误,我想表达这一点,以便流程可以帮我标记这种情况。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用(value: Type)格式。在你的情况下:

type Bar = 'One' | 'Two';
function foo(b: Bar) : boolean {
  return b === ("Three": Bar);
}

将显示错误。

Updated example

答案 1 :(得分:0)

这是我能想到的另一种方式:

type Bar = 'One' | 'Two';

function eq(a: Bar, b: Bar): boolean {
  return a === b;
}
function foo(b: Bar) : boolean {
  // compare b to 'Three'
  return eq(b, 'Three');
}

将导致

return eq(b, 'Three');
                  ^ string. This type is incompatible with the expected param type of 
function eq(a: Bar, b: Bar): boolean {
                       ^ string enum

to be found here