【问题标题】:angularfie2 version 5 Type 'Observable<{}[]>' is not assignable to type 'Observable<any[]>'angularfie2 版本 5 类型 'Observable<{}[]>' 不可分配给类型 'Observable<any[]>'
【发布时间】:2018-09-10 14:16:49
【问题描述】:

我正在使用 angularfire2 版本 5,但出现以下错误:

类型 'Observable' 不可分配给类型 Observable

这是我的代码:

  exercisesList$: Observable <any[]>;

  ionViewDidLoad() {
    this.exercisesList$ = this.workoutProvider.getExercises();
  }

getExercises()

 getExercises(){
    return this.db.list(`Exercises/${localStorage.getItem('workoutName')}`).valueChanges();
  }

HTML

  <ion-list>
    <ion-item *ngFor="let exercise of exercisesList$ | async">{{exercise.name}}</ion-item>
  </ion-list>

截图

任何人都可以解释 valueChanges 的类型是什么,我该如何解决这个问题。

谢谢。

【问题讨论】:

    标签: angular typescript firebase-realtime-database ionic2 angularfire2


    【解决方案1】:

    目前有一个未解决的问题:

    https://github.com/angular/angularfire2/issues/1299

    你有两种解决方法:

    • 按照转译器提示,您可以简单地将exercisesList$ 类型更改为Observable &lt;{}[]&gt;

    • 转换返回类型:

    this.exercisesList$ = this.workoutProvider.getExercises() as Observable&lt;any[]&gt; this.exercisesList$ = (Observable&lt;any[]&gt;) this.workoutProvider.getExercises()

    【讨论】:

    • 嘿,谢谢你的回复,我试过第一个得到以下error:Type 'Observable&lt;{}[]&gt;' cannot be converted to type 'Observable&lt;any[]&gt;'.
    • 我重试成为:this.exercisesList$ = this.workoutProvider.getExercises().valueChanges() as Observable &lt;any[]&gt; 并将this.exercicesList$ 类型留空。它对我有用,如果这是最佳实践,我现在不知道,因为我们应该将类型输入this.exercices
    猜你喜欢
    • 2018-08-14
    • 2017-08-12
    • 2018-08-30
    • 2023-04-10
    • 2020-05-28
    • 2018-03-09
    • 2018-04-19
    • 1970-01-01
    • 2021-09-23
    相关资源
    最近更新 更多