rxjs - [ts] 输入 'Observable<{} | T>' 不可分配给类型 'Observable<T>'

洛希亚拉胡尔
    public get<T>(url: string, httpParams: Array<Map<string, string>>): Observable<T> {
    return this.httpClient
        .get<T>(url, { params: this.appendHttpParams(httpParams), headers: this.httpHeaders })
        .catch((error, some): any => {
            console.log(error);
        });

}

我在 Angular 4 中的 http 服务周围有这个包装函数。它在没有指定返回类型的情况下工作正常。但是,如果我提供与 Observable 相同的“httpClient.get()”返回类型,则会引发错误

[ts] 输入 'Observable<{} | T>' 不可分配给类型 'Observable'。输入“{} | T' 不能分配给类型 'T'。类型“{}”不可分配给类型“T”。

我错过了什么?

步伐

您可能想要使用do而不是catch. catch适用于您想要处理错误并继续可观察链的场景。在一种catch方法中,您应该返回链可以切换到的不同 observable。例如:

this.httpClient
    .get<T>(...)
    .catch(err => {
        return this.cachedVersion;
    );

无论如何,由于您的catch方法中没有任何 return 语句,因此它返回 void。这就是为什么您的 observable 会更改为,Observable<T|{}>因为T如果没有错误和{}错误,它将是一个发出的链

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

RXJS Observable 枚举类型,类型 'Observable<Type>' 不可分配给类型 'Type'

来自分类Dev

输入 'Observable<any[] | Observable<any[]>>' 不可分配给类型 'Observable<any[]>'

来自分类Dev

TS2322:类型“ Observable <{}>”不可分配给类型“ Observable <Hero>”

来自分类Dev

错误 TS2322:类型“Observable<{}[]>”不可分配给类型“Observable<Archive[][]>”

来自分类Dev

输入 '(token: string) => Observable<{ headers: HttpHe aders; }>' 不可分配给类型 'Observable<any>'

来自分类Dev

输入'可观察的<{} | IProduct[]>' 不可分配给类型 'Observable<IProduct[]>'

来自分类Dev

类型'Observable <Observable <Response >>'不可分配给类型'Observable <Response>'

来自分类Dev

类型 'Observable<Observable<Object[]>>' 不可分配给类型 'Observable<Object[]>'

来自分类Dev

类型“ null”不可分配给类型“ T”

来自分类Dev

类型 Observable<boolean> 不可分配给类型 Observable<HttpResponse<boolean>>

来自分类Dev

类型 'Date' 不可分配给类型 'Observable<Date>' - Angular 6+

来自分类Dev

TS2322:输入'Todo [] | “ null”不可分配给“ Todo []”类型。类型“ null”不可分配给类型“ Todo []”

来自分类Dev

Angular 6 GridDataResult' 不可分配给类型 'Observable<GridDataResult>

来自分类Dev

可观察的<void | AuthError>' 不可分配给类型 'Observable<Action>

来自分类Dev

类型'Observable <Promise <any >>'不可分配给类型'Observable <myRec []>'。缺少类型“ Promise <any>”

来自分类Dev

类型“ Observable <any>”不可分配给类型“ StoresSummaryResults”。类型“ Observable <any>”中缺少属性“ Data”

来自分类Dev

角度:错误 TS2322:类型 'Observable<{}>' 不可分配......使用 share() 运算符

来自分类Dev

承诺:void 类型的参数不可分配给类型 T

来自分类Dev

RXJS如何将Observable <T []>转换为Observable <T>

来自分类Dev

从Observable <T []>到Observable <T> []

来自分类Dev

Observable <Observable <T >>到Observable <T>

来自分类Dev

无法将Rxjs类型Observable <Unknown>分配给Observable <void>

来自分类Dev

Observable<Array<T>> 到 Observable<T>

来自分类Dev

如何组合多个 Observable 类型数组 Observable<T[]>?

来自分类Dev

从结果创建Observable <T>

来自分类Dev

TS2322:类型“数字”不可分配给类型“ bigint”

来自分类Dev

TS 编译器错误:类型 'string' 不可分配给类型 'Status'

来自分类Dev

TS2322:类型“对象”不可分配给类型“商店”

来自分类Dev

错误 TS2322:“对象”类型不可分配给“产品”类型

Related 相关文章

  1. 1

    RXJS Observable 枚举类型,类型 'Observable<Type>' 不可分配给类型 'Type'

  2. 2

    输入 'Observable<any[] | Observable<any[]>>' 不可分配给类型 'Observable<any[]>'

  3. 3

    TS2322:类型“ Observable <{}>”不可分配给类型“ Observable <Hero>”

  4. 4

    错误 TS2322:类型“Observable<{}[]>”不可分配给类型“Observable<Archive[][]>”

  5. 5

    输入 '(token: string) => Observable<{ headers: HttpHe aders; }>' 不可分配给类型 'Observable<any>'

  6. 6

    输入'可观察的<{} | IProduct[]>' 不可分配给类型 'Observable<IProduct[]>'

  7. 7

    类型'Observable <Observable <Response >>'不可分配给类型'Observable <Response>'

  8. 8

    类型 'Observable<Observable<Object[]>>' 不可分配给类型 'Observable<Object[]>'

  9. 9

    类型“ null”不可分配给类型“ T”

  10. 10

    类型 Observable<boolean> 不可分配给类型 Observable<HttpResponse<boolean>>

  11. 11

    类型 'Date' 不可分配给类型 'Observable<Date>' - Angular 6+

  12. 12

    TS2322:输入'Todo [] | “ null”不可分配给“ Todo []”类型。类型“ null”不可分配给类型“ Todo []”

  13. 13

    Angular 6 GridDataResult' 不可分配给类型 'Observable<GridDataResult>

  14. 14

    可观察的<void | AuthError>' 不可分配给类型 'Observable<Action>

  15. 15

    类型'Observable <Promise <any >>'不可分配给类型'Observable <myRec []>'。缺少类型“ Promise <any>”

  16. 16

    类型“ Observable <any>”不可分配给类型“ StoresSummaryResults”。类型“ Observable <any>”中缺少属性“ Data”

  17. 17

    角度:错误 TS2322:类型 'Observable<{}>' 不可分配......使用 share() 运算符

  18. 18

    承诺:void 类型的参数不可分配给类型 T

  19. 19

    RXJS如何将Observable <T []>转换为Observable <T>

  20. 20

    从Observable <T []>到Observable <T> []

  21. 21

    Observable <Observable <T >>到Observable <T>

  22. 22

    无法将Rxjs类型Observable <Unknown>分配给Observable <void>

  23. 23

    Observable<Array<T>> 到 Observable<T>

  24. 24

    如何组合多个 Observable 类型数组 Observable<T[]>?

  25. 25

    从结果创建Observable <T>

  26. 26

    TS2322:类型“数字”不可分配给类型“ bigint”

  27. 27

    TS 编译器错误:类型 'string' 不可分配给类型 'Status'

  28. 28

    TS2322:类型“对象”不可分配给类型“商店”

  29. 29

    错误 TS2322:“对象”类型不可分配给“产品”类型

热门标签

归档