Observable.forkJoin неверный тип возврата, когда более 6 аргументов
У меня есть проблема с Observable.forkJoin, приводящая к неверному типу возвращаемого значения и вызывающая ошибки, когда я передаю более 6 аргументов.
Observable.forkJoin(service.getType1, service.getType2, service.getType3 ...)
.subscribe(x => {
this.type1Arr = x[0];
this.type2Arr = x[1];
this.type3Arr = x[2];
Каждый вызов функции из службы возвращает Observable<Array<type>>
, Компилятор определяет, что возврат должен быть Type1[][]
когда мне поступило более 6 вызовов от службы. Это работает нормально до 6, хотя, оно будет иметь правильный возврат, и я могу назначить строго типизированные результаты.
Я использую rxjs 5.4.3 и Typescript 2.4.0 (Инструменты Typescript для Visual Studio 2.5.2).
Есть ли обходной путь для этого, не применяя его?
1 ответ
Наборы для forkJoin
определить макс forkJoin
с 6 параметрами, как вы можете видеть здесь: https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L27
Обратите внимание, что есть разные способы вызова forkJoin
с более чем 6 параметрами:
Observable.forkJoin(observables)
или же
Observable.forkJoin(...observables)
Вы также можете принудительно возвращать типы ( https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L35):
Observable.forkJoin<Whatever[]>(observables)