Flow: возврат void, когда параметр void - PullRequest
0 голосов
/ 12 сентября 2018

Ладно, я составляю коллективный поток людей здесь ...

Я хочу сделать что-то вроде этого:

Итак, я создаю несколько селекторов иЯ хочу, чтобы тип определения был гибким ... прямо сейчас у меня есть:

function getName(person) {
  if (! person) {
    return undefined
  } else {
    return person.name
  }
}

const maybeFrank: ?Person = getFrank()
const definitelyMaria: Person = getMaria()

const frankName: ?string = getName(maybeFrank)
const mariaName: string = getName(definitelyMaria)

Одно из возможных решений - переопределить тип функции несколько раз:

declare function getName(p: Person): string;
declare function getName(p: void): void;
function getName(p: ?Person): ?string { ... }

НО у вас тогда естьпопросить ESLint прекратить жаловаться, и вы не можете использовать const вместо function, потому что Flow странно жалуется.Я бы предпочел не использовать этот синтаксис.

Есть еще идеи?Я попробовал немного магии с & или |, но не получил желаемого эффекта ...

Оригинальный вопрос SO

...