【问题标题】:Type 'Observable<{}>' is not assignable to type 'Observable<Item[]>: Rxjs类型 'Observable<{}>' 不可分配给类型 'Observable<Item[]>: Rxjs
【发布时间】:2017-03-30 11:01:10
【问题描述】:

这里ItemService item.service.ts

export const items = (state: any = [], {type, payload}) => {
   switch (type) {
     default:
        return state;
   }
};

export interface Item {
   id: number;
   name: string;
   description: string;
};

export interface AppStore {
   items: Item[];
   selectedItem: Item;
};

@Injectable()
export class ListService {
   items: Observable<Array<Item>>;
   private listModel: ItemList = new ItemList();

   constructor(private itemListApi: ItemListApi, private store: Store<AppStore>) {
       this.items = store.select('items');===>Error

    }
}

this.items 出现错误。错误是“类型 'Observable' 不可分配给类型 'Observable”。什么地方出了错?有什么帮助吗?

【问题讨论】:

    标签: angular typescript rxjs ngrx


    【解决方案1】:

    试试这个:

    this.items = store.select<Array<Item>>('items');
    

    【讨论】:

      【解决方案2】:

      发生这种情况是因为您将items 定义为Observable&lt;Array&lt;Item&gt;&gt;store.select('items') 可能返回Observable&lt;T&gt;

      您可以使用类型转换来告诉编译器您期望它返回什么:

      this.items = <Observable<Item[]>>store.select('items');
      

      【讨论】:

        猜你喜欢
        • 2018-11-02
        • 2020-11-12
        • 2017-12-29
        • 2020-04-17
        • 2018-08-14
        • 2021-01-02
        • 2020-11-23
        • 2019-01-12
        • 1970-01-01
        相关资源
        最近更新 更多