машинописный текст: ошибка вывода на универсальном типе при использовании функции стрелки - PullRequest
1 голос
/ 30 сентября 2019

Я ожидаю, что с учетом приведенной ниже настройки тип data будет правильно выведен как внутренний тип наблюдаемой of, например, number.

. Существуют некоторые специфические типы ngrx. здесь, но кажется, что проблема не связана с ними. Следующий фрагмент не проходит проверку типа, потому что data рассматривается как unknown

Редактировать: сокращенный пример со всеми типами, определенными на детской площадке =>

interface ActionResponderOpts<T, A extends ActionCreator> {
  ofType: A;
  apiStream: (actionType: ActionType<A>) => Observable<T>;
  onSuccess: (data: T) => Observable<Action>;
}

function actionResponder<T, A extends ActionCreator>(op: ActionResponderOpts<T, A>): void {}

actionResponder({
  ofType: SignIn,
  apiStream: payload => of(payload.email.length),
  onSuccess: data => { data.toString(); Math.round(data); return from([])},
});

Способ принудительно сделать правильный (но бесполезный) вывод типа с помощью фиктивной функции.

const ofOne = () => of(1)

actionResponder({
  ofType: SignIn,
  apiStream: ofOne,
  onSuccess: data => { data.toString(); Math.round(data); return from([])},
});

Мне не ясно, почему первая не должна проверять тип, если этого не происходит.

...