Angular RxJS Observable 加载错误
Angular RxJS Observable loading error
我已经声明了一个可观察变量
workOrders: Observable<IWorkOrders[]>;
然后我以这种方式加载那个 observable。
this.bs.getWorkOrders()
.pipe(map(data:IWorkOrders[]) => this.workOrders = data)),
.subscribe((data: IWorkOrders[]) =>
// this.workOrders = data;
this.woSubject.next(data),
);
但是当我这样做时,我看到 this.workOrders = 数据线下有一条红色波浪线。而且当我悬停时它说
[ts] 类型 'IWorkOrders[]' 不可分配给类型 'Observable'
如错误消息所述 - workOrders
的类型为 Observable<IWorkOrders[]>
,而 data
变量的类型为 IWorkOrders[]
。在您的情况下,您试图将两种不兼容的类型分配给彼此。在 map
函数中,您接收到 Observable
的值,它的类型是 IWorkOrders[]
.
您需要做的是将 workOrders
声明为 IWorkOrders[]
而不是 Observable
类型:
workOrders: IWorkOrders[];
P.S。你有一个额外的尾随逗号 .pipe(map(data:IWorkOrders[]) => this.workOrders = data)), <--
workOrders=this.bs.getWorkOrders();
会起作用
workOrders
是 Observable
类型。 data
属于 IWorkOrders[]
类型
由于这些是 2 种不同的类型,因此您会收到错误。您不能分配 IWorkOrders[] to Observable
.
我已经声明了一个可观察变量
workOrders: Observable<IWorkOrders[]>;
然后我以这种方式加载那个 observable。
this.bs.getWorkOrders()
.pipe(map(data:IWorkOrders[]) => this.workOrders = data)),
.subscribe((data: IWorkOrders[]) =>
// this.workOrders = data;
this.woSubject.next(data),
);
但是当我这样做时,我看到 this.workOrders = 数据线下有一条红色波浪线。而且当我悬停时它说
[ts] 类型 'IWorkOrders[]' 不可分配给类型 'Observable'
如错误消息所述 - workOrders
的类型为 Observable<IWorkOrders[]>
,而 data
变量的类型为 IWorkOrders[]
。在您的情况下,您试图将两种不兼容的类型分配给彼此。在 map
函数中,您接收到 Observable
的值,它的类型是 IWorkOrders[]
.
您需要做的是将 workOrders
声明为 IWorkOrders[]
而不是 Observable
类型:
workOrders: IWorkOrders[];
P.S。你有一个额外的尾随逗号 .pipe(map(data:IWorkOrders[]) => this.workOrders = data)), <--
workOrders=this.bs.getWorkOrders();
会起作用
workOrders
是 Observable
类型。 data
属于 IWorkOrders[]
类型
由于这些是 2 种不同的类型,因此您会收到错误。您不能分配 IWorkOrders[] to Observable
.