簡體   English   中英

類型為“可觀察”的屬性“捕獲”不存在 <IEmployee[]> &#39;.ts(2339)通過添加導入&#39;rxjs / add / operator / catch&#39;無法解決錯誤;

[英]Property 'catch' does not exist on type 'Observable<IEmployee[]>'.ts(2339) Error is not resolved by adding import 'rxjs/add/operator/catch';

當我將鼠標懸停在.catch(this.errorHandler) ,我收到一條錯誤消息

類型'Observable'.ts(2339)上不存在屬性'catch'

我無法將catch函數導入角型打字稿。

當我將鼠標懸停在.catch(this.errorHandler) ,我收到一條錯誤消息

類型'Observable'.ts(2339)上不存在屬性'catch'

根據另一個堆棧文章: 屬性'catch'在類型'Observable <any>'中不存在,我應該添加:

import 'rxjs/add/operator/catch'

我也嘗試導入

import {Observable} from 'rxjs/Rx';

import { catchError } from 'rxjs/operators'; 

並使用catchError代替catch。

這些都不起作用

    import { Injectable } from '@angular/core';
    import { HttpClient, HttpErrorResponse } from '@angular/common/http';
    import { IEmployee } from './employee';
    import { Observable, fromEventPattern } from 'rxjs';
    import 'rxjs/add/operator/catch';
    import {catchError} from "rxjs/operators"
    import 'rxjs/add/observable/throw';

    @Injectable({
      providedIn: 'root'
    })
    export class EmployeeService {

      private _url : string = "../assets/data/employees.json";
      constructor(private http: HttpClient) { }

      getEmployees(): Observable<IEmployee[]>{
        return this.http.get<IEmployee[]>(this._url)
                        .catch(this.errorHandler)
      }
      errorHandler(error:HttpErrorResponse){
          return Observable.throw(error.message ||"Server Error")
      }
    }

兩個問題:

  1. 使用catchError不能catch

  2. 與.pipe()一起使用

      return this.http.get<IEmployee[]>(this._url) .pipe(catchError(this.errorHandler)); 

試試看(catchError和throwError):

import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { IEmployee } from './employee';
import { Observable, fromEventPattern, throwError} from 'rxjs';
import {catchError} from "rxjs/operators"

@Injectable({
  providedIn: 'root'
})
export class EmployeeService {

  private _url : string = "../assets/data/employees.json";
  constructor(private http: HttpClient) { }

  getEmployees(): Observable<IEmployee[]>{
    return this.http.get<IEmployee[]>(this._url)
                   .pipe(catchError(this.handleError));
  }

   handleError(error: HttpErrorResponse) {

     //throwError instead of Observable.throw
      return throwError(error.error.message ||"Server Error");
  };
}

TS2339:(TS) 類型“Observable”上不存在屬性“catch”<object> '<div id="text_translate"><p> <strong>我試圖暗示的代碼顯示“catch”不存在。</strong></p><pre> import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { User } from '../Model/User'; import { environment } from '../../environments/environment'; import 'rxjs/add/operator/catch'; @Injectable() export class UserService { headers: HttpHeaders; constructor(private httpClient: HttpClient) { this.headers = new HttpHeaders({ 'content-type': 'application/json' }); } GetUser(): Observable<User[]> { return this.httpClient.get(environment.apiAddress + '/user').catch(err => Observable.throw(err)); } }</pre></div></object>

[英]TS2339:(TS) Property 'catch' does not exist on type 'Observable<Object>'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 錯誤TS2339:類型“可觀察”上不存在屬性“捕獲” <empInterface[]> “ TS2339:(TS) 類型“Observable”上不存在屬性“catch”<object> '<div id="text_translate"><p> <strong>我試圖暗示的代碼顯示“catch”不存在。</strong></p><pre> import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { User } from '../Model/User'; import { environment } from '../../environments/environment'; import 'rxjs/add/operator/catch'; @Injectable() export class UserService { headers: HttpHeaders; constructor(private httpClient: HttpClient) { this.headers = new HttpHeaders({ 'content-type': 'application/json' }); } GetUser(): Observable<User[]> { return this.httpClient.get(environment.apiAddress + '/user').catch(err => Observable.throw(err)); } }</pre></div></object> 錯誤TS2339:屬性'takeUntil'在類型'Observable <Foo>'和其他rxjs v.6錯誤上不存在 錯誤 TS2339:“可觀察”類型上不存在屬性“過濾器”<employee[]> '。 在 Angular rxjs</employee[]> 錯誤TS2339:類型“ PromiseLike”上不存在屬性“ catch” <void> &#39; 錯誤 TS2339:類型“Observable”上不存在屬性“do” 屬性“ from”在類型“ typeof Observable”上不存在。ts(2339) TS2339:類型“可觀察”上不存在屬性“第一” <boolean> “ 類型'typeof Observable'.ts(2339)上不存在屬性'interval' Observable 類型上不存在 TS2339 屬性 xxx 的問題
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM