1

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

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 = data 行下看到一个红色的波浪线。而且当我悬停时它说[ts]类型'IWorkOrders []'不可分配给类型'Observable' 在此处输入图像描述

4

2 回答 2

1

workOrders=this.bs.getWorkOrders();将工作

workOrders是类型Observabledata是类型IWorkOrders[] 因为它们是 2 种不同的类型,因此您会遇到错误。您不能分配IWorkOrders[] to Observable.

于 2018-05-26T16:35:08.070 回答
1

如错误消息所述 -workOrders属于类型Observable<IWorkOrders[]>,而data变量属于类型IWorkOrders[]。在您的情况下,您试图将两种不兼容的类型相互分配。在map函数中,您将收到Observable类型为 which的值IWorkOrders[]

你需要做的是声明workOrders为一个IWorkOrders[]而不是Observable那个类型的一个:

workOrders: IWorkOrders[];

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

于 2018-05-26T16:24:10.140 回答