类型'{}'的Angular RxJs不存在属性'filter'

时间:2019-10-18 10:53:28

标签: angular typescript filter rxjs

我正在尝试创建一个可观察的对象,并使用RxJs从API获取一些值,但是出现错误

Property 'filter' does not exist on type '{}'

我正在使用RxJs 6和Angular 8。 错误在这里

this.beginnersCourses$ = http$
        .pipe( 
            map(courses => courses.
                filter(course => course.category == 'BEGINNER'))
        );

我当然首先定义了可观察的

beginnersCourses$: Observable<Course[]>;

导入为

import {map, filter} from 'rxjs/operators';

那是http $

const http$ = createHttpObservable('api/courses');

        const courses$ = http$
          .pipe(
            map(res => Object.values(res["payload"]))      
        )

2 个答案:

答案 0 :(得分:3)

courses.filter(course => course.category == 'BEGINNER')绝对与Rxjs的filter函数无关。这是数组的原型方法。

您的问题是,您的可观察对象不返回Course[](如您所定义)的数组,而是返回对象。对象没有filter方法原型。

您必须将观测值的返回类型更改为实际值。

答案 1 :(得分:0)

我想你想写的是:

.mat-spinner {
    ::ng-deep circle {
        stroke: #33dd82;
    }
}