Angular RxJS Observable加载错误

时间:2018-05-26 16:13:08

标签: angular typescript rxjs6

我已经声明了一个可观察的变量

workOrders: Observable<IWorkOrders[]>;

然后我以这种方式加载那个可观察对象。

  this.bs.getWorkOrders()
  .pipe(map(data:IWorkOrders[]) => this.workOrders = data)),
    .subscribe((data: IWorkOrders[]) =>
      // this.workOrders = data;
      this.woSubject.next(data),
  );

但是当我这样做时,我会看到this.workOrders =数据线下的红色波浪形。而且当我徘徊它说 [ts]输入&#39; IWorkOrders []&#39;不能指定类型&#39; Observable&#39; enter image description here

2 个答案:

答案 0 :(得分:1)

正如错误消息所述 - workOrders的类型为Observable<IWorkOrders[]>,而data变量的类型为IWorkOrders[]。在您的情况下,您尝试将两个不兼容的类型分配给彼此。在map函数中,您收到Observable类型为IWorkOrders[]的值。

您需要做的是将workOrders声明为IWorkOrders[]而不是该类型的Observable

workOrders: IWorkOrders[];

P.S。你有一个额外的尾随逗号.pipe(map(data:IWorkOrders[]) => this.workOrders = data)), <--

答案 1 :(得分:1)

workOrders=this.bs.getWorkOrders();将有效

workOrders的类型为Observabledata的类型为IWorkOrders[] 由于这些是两种不同的类型,因此您会得到错误。您无法指定IWorkOrders[] to Observable