Как использовать раздел rxjs6 в машинописном тексте?

Когда я пытаюсь использовать rxjs6 partition в машинописном тексте, выдается ошибка несоответствия типа. Также пример из официальной документации вызывает эту ошибку. Думаю, мне нужно что-то разыграть, но не знаю что. Какие-либо предложения?

import {fromEvent} from 'rxjs';
import {partition} from 'rxjs/operators';

document.body.innerHTML = "<DIV width=100 height=100></DIV>"


//Example Code from https://rxjs-dev.firebaseapp.com/api/operators/partition
const clicks = fromEvent(document, 'click');
const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV'));
const clicksOnDivs = parts[0];
const clicksElsewhere = parts[1];
clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));
clicksElsewhere.subscribe(x => console.log('Other clicked: ', x)); 

Ошибка:

Аргумент типа UnaryFunction, [Observable, Observable]> не может быть назначен параметру типа OperatorFunction. Тип «[Observable, Observable]» нельзя присвоить типу «Observable». Свойство _isScalar отсутствует в типе [Observable, Observable].

См. https://stackblitz.com/edit/typescript-fdqhws.


person fastr.de    schedule 14.06.2018    source источник


Ответы (1)


Типы для pipe в настоящее время недостаточно гибкие для поддержки partition в качестве конвейерного оператора, а документация для partition не очень полезна на момент написания: https://github.com/ReactiveX/rxjs/issues/2995

Я считаю, что есть призывы сделать его статической функцией в RxJS7: https://github.com/ReactiveX/rxjs/issues/3797

В качестве обходного пути попробуйте следующее:

const clicks = fromEvent(document, 'click');
const parts = partition(ev => ev.target.tagName === 'DIV')(clicks);
person Wayne Maurer    schedule 14.06.2018