Поток JS уточнения свойств объекта - PullRequest
3 голосов
/ 05 февраля 2020

try flow

type G<T> = {|
  a: T,
  b: T
|};

function foo(p: G<number> | G<string>): number {
  if (typeof p.a === 'number') {
    return p.b; // Error: Cannot return `p.b` because string [1] is incompatible with number
  } else {
    return 1;
  }
}

В примере выше, почему поток не знает, является ли одно из свойств объекта одним из типов, тогда остальные типы должны быть таким же?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...