如何在 Observables 上设置正确的类型?

Posted

技术标签:

【中文标题】如何在 Observables 上设置正确的类型?【英文标题】:How to set correct type on Observables? 【发布时间】:2017-03-12 23:39:03 【问题描述】:

observables/angular 2 的新手。在我的组件上正确更新了内容,但我从 typescript 收到此错误:

“StoreItem[]”类型的参数不能分配给类型参数 '字符串'。

有人可以指导我如何设置正确的类型吗?

//store.item.interface.ts
  export interface StoreItem 
  id?: number;
  qty?: number;
  nameList?:Array<string>;
  title: string;
  price: number;



//cart.service.ts

import Injectable from '@angular/core'
import Subject    from 'rxjs/Subject';
import  StoreItem  from '../store.item.interface'

@Injectable()
export class CartService 
  private _subject = new Subject<string>();
  private _cartList:StoreItem[] = [];

  cartList$ = this._subject.asObservable();


  addItem(item:StoreItem)
    this._cartList.push(item)
    this._subject.next(this._cartList)

  

【问题讨论】:

【参考方案1】:

只需为 Subject 设置正确的类型(假设您要发出整个 _cartList 数组):

private _subject = new Subject<StoreItem[]>();

【讨论】:

以上是关于如何在 Observables 上设置正确的类型?的主要内容,如果未能解决你的问题,请参考以下文章

RxSwift 合并不同类型的 Observables

将 Typescript 类型同步到 Firebase Object Observables 而不会丢失功能等

Angular2 http observables - 如何使用未定义的类型

如何在模板 Angular 2 中呈现 observables 数组长度

Angular 2 变化检测与 observables

Observables 和响应数据类型