Проблема типа RxJS в подписке для конвейерных операторов - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь использовать конвейерные операторы RxJS в своем угловом проекте. У меня есть реализация, как показано ниже.

// Service Method
public getItems(params: Object = {}): Observable<JsendResponse> {
    return this.apiService.get('v1/url', params);
}

// JsendResponse interface
import { Response } from '@angular/http';

export interface JsendResponse extends Response {
    data: any;
    message: string;
    status: number;
}

// Component call
this.service
    .getItems({})
    .finally(() => this.loading = false)
    .subscribe(
         response => this.actions = response.data,
         error => this.errors = error
    );

В приведенном выше примере я получаю response, набранный правильно с типом JsendResponse. Но когда я использую оператор pipe, response вводится неправильно, и моя IDE сообщает, что TS2339: Property 'data' does not exist on type {}.

this.service
    .getItems({})
    .pipe(
        finalize(() => this.loading = false)
    )
    .subscribe(
        response => this.actions = response.data,
        error => this.errors = error
    );

В чем может быть причина? Заранее спасибо.

...