首页 > 解决方案 > 类型'可观察的' 不可分配给类型 'Observable'

问题描述

尝试获取项目时出现以下错误:

Type 'Observable<unknown[]>' is not assignable to type 'Observable<Event[]>'.
Type 'unknown[]' is not assignable to type 'Event[]'.
Type '{}' is missing the following properties from type 'Event': code, name, password, pollCat

events.service.ts

import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument} from 'angularfire2/firestore';
import { Event } from '../models/events'
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class EventsService {

  eventsCollection : AngularFirestoreCollection<Event>;
  events : Observable<Event[]>;

  constructor(public afs: AngularFirestore) { 
    this.events = this.afs.collection('Events').valueChanges();
  }

  getEvents()
  {
    return this.events;
  }
}

events.ts

export interface Event{

    code: string;
    name: string;
    password: string;
    pollCat : string;

  }

标签: angulartypescriptfirebaserxjs

解决方案


调用方法时需要提供泛型类型collection,而不是使用默认值unknown

this.events = this.afs.collection<Event>('Events').valueChanges();
                              // ^ here

您可以在此处阅读 TypeScript 手册中有关泛型的更多信息。


推荐阅读