Свойство ‘filter’ не существует для типа ‘Observable’. rxjs v6

#javascript #rxjs #rxjs6 #rxjs-observables #rxjs-pipeable-operators

#javascript #rxjs #rxjs6 #rxjs-наблюдаемые #rxjs-pipeable-операторы

Вопрос:

Поскольку я работал с angular9, а компилятор ivy включал значение false.Все работало нормально.Но после обновления приложения до angular v10 и получения связанного с rxjs оператора и связанной с observable ошибки компиляции.

Перед:

«rxjs»: «^6.5.5», «rxjs-compat»: «^6.5.5»

После(теперь rxjs-compat удален):

«rxjs»: «^6.6.2»

Ошибка:

  error TS2339: Property 'filter' does not exist on type 'Observable<any>'.
  

Код:

  let fromdate$ = of(fromdatevalue)
          let fromdateIfNull = fromdate$.filter(date => date != null)
            .map(date => {
              let fromdate = new Date(fromdatevalue);
              fromdate.setHours(8, 0, 0, 0);
              return fromdate;
            })
  

Как устранить ошибку, и я хочу правильно использовать rxjs импорт в приложении angular v10.

Спасибо.

Комментарии:

1. Я полагаю, вы хотите pipe(filter(date => date !== null)) , чтобы и канал, и фильтр импортировались из rxjs

2. Однако, учитывая, что вы делаете of(fromdatevalue) и у вас уже есть это значение, я не уверен, зачем вы вообще используете observable

3. @Taplar выше приведен только пример кода … но вот так во многих местах я получаю ошибки такого рода, так что … я хочу с кодом и без изменений кода… в обоих случаях, как импортировать observalbe / operator из rxjs.

4. Похоже, вы используете старый синтаксис rxjs. Почему вы удалили rxjs-compat ? Вам нужно, чтобы это можно было сделать .filter .

5. @AliF50 да, снова добавлено rxjs-compat … как узнать о «.. использовании старого синтаксиса rxjs»… что лучше всего знать о неправильном syntax?…in ошибка компонента импорт фильтра недоступен.