Есть ли способ настроить смешанную ковариацию в обобщениях потока? - PullRequest
0 голосов
/ 31 января 2020

Я использую // @flow strict, а использование * и any запрещено.

Я хотел бы создать массив функций, имеющих типы возвращаемых переменных, но все же строго использовать эти функции.

Вот пример

Мне нужно хранить функции с типом возврата mixed. Я попробовал ковариацию, но я не уверен, как это работает в потоке. Есть ли способ исправить ошибку в этом примере, не скрывая тип возвращаемого значения?

1 Ответ

1 голос
/ 31 января 2020

Чтобы вставить sh в этот массив, вам нужно пометить аргумент шаблона Selector как ковариантный . Вы можете изменить

type Selector<T> = (state: S) => T;

на

type Selector<+T> = (state: S) => T;

. Как видите, <T> теперь <+T>, так что вы можете безопасно конвертировать из Y в mixed.

...