Почему следующий вызов rxjs для switchMap дает ошибку типа? - PullRequest
0 голосов
/ 08 апреля 2019

У меня проблемы с получением этого кода для проверки типов.Он компилируется и работает нормально, и мне неясно, что я что-то упускаю или глупо ли проверять тип.

import * as Rx from 'rxjs'

const foo : Rx.Observable<number> =
    Rx.of<number>(1)
      .pipe<number>(
          switchMap<number,Rx.Observable<number>>(
              (n : number) => Rx.of<number>(n)
          )
      )

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

Argument of type 'OperatorFunction<number, T>' is not assignable to parameter
of type 'OperatorFunction<number, number>'.
   Type 'T' is not assignable to type 'number'. (tsx-tide)

1 Ответ

0 голосов
/ 16 апреля 2019

В случае, если это случится с кем-то еще, он исправил себя, изменив мой tsconfig.json.Не уверен, какое поле вызывало проблемы, но я сделал следующие изменения:

  • switch module с amd на ESNext (это могло бы помочь)
  • switch target с es6 до ES6 (я не думаю, что это что-то делает)
  • удалил мой lib, который содержал dom, es2016, es2016.array.include
  • удаляет "experimentalDecorators": true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...