angular - 类型 'Observable<{}>' 不可分配给类型 'Observable<Item[]> : Rxjs

标签 angular typescript rxjs ngrx

此处 ItemService 项目.服务.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 中遇到错误。错误是“Type 'Observable<{}>' is not assignable to type 'Observable”。什么地方出了错?有什么帮助吗?

最佳答案

发生这种情况是因为您定义了 items作为Observable<Array<Item>>同时store.select('items')可能返回 Observable<T> .

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

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

关于angular - 类型 'Observable<{}>' 不可分配给类型 'Observable<Item[]> : Rxjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40628875/

相关文章:

unit-testing - 使用 jasmine 进行 Angular2 异步单元测试

javascript - Swiper.js 分页自定义项目符号不会点击移动到下一张幻灯片

angular - ngrx:如何在 createSelector 方法中将参数传递给选择器

angular - 为什么 Angular 的英雄之旅 http 错误处理程序接受任何类型的参数?

javascript - 无法获取作为函数参数传递的数组长度

javascript - Angular 6 表单在提交和重置后返回验证错误

javascript - Rxjs操作符switchMap

azure - angular2应用程序,文件json文件的http请求,azure上的404

javascript - 如何仅从客户端向服务器发送 WebSocketSubject 消息?

rxjs - 如何使用 rxjs 5 创建一个 pausableBuffer