繁体   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