уточнение типа в объединении потока, поток не распознает оператор if - PullRequest
0 голосов
/ 23 марта 2019

Хорошо, учитывая следующий простой код:

/* @flow */

type A = {|
  value: {id: number} | number,
  value2: string,
|}


type B = {
  ...$Exact<A>,
  value: number,
}


function foo(b:B, add: number) {
  console.log(b.value + add);
  console.log(b.value2)
}

const v: A = {
  value: 2,
  value2: 'a',
}
if (typeof v.value === 'number') {
  foo(v);
}

typeof должен указывать, что тип уточнен до "числа", и, таким образом, это может быть аргумент foo. Однако, когда я проверяю это в скрипке , отображаются ошибки. (Cannot call Foo with v bound to B because object type [1] is incompatible with number [2] in property значение .)

1 Ответ

0 голосов
/ 25 марта 2019

Рекомендуем прочитать этот номер: https://github.com/facebook/flow/issues/4685

...