Тип "Observable <{} []>" нельзя назначить типу "Observable' - PullRequest
0 голосов
/ 25 мая 2018

Я учусь использовать AngularFirebase и сталкиваюсь с проблемой названия.

Вот код:

  @Injectable()
  export class AbstractService<T> {

    constructor(private dbRef: AngularFireDatabase,
                private afAuthRef: AngularFireAuth,
                private dbFireStoreRef: AngularFirestore,
                private storageRef: AngularFireStorage,
                private message: MessageService) {
      this.dbRealTime = dbRef;
      this.afAuth = afAuthRef;
      this.dbFireStore = dbFireStoreRef;
      this.storage = storageRef;
    }

    <-- some other methodes -->

    getAll(path: string): Observable<T[]> {
      return this.dbRealTime.list(path).valueChanges();
    }
  }

А другая часть -

  export class BooksService extends AbstractService<Book> {

    addBook(book: Book) {
      return new Promise(
        (resolve, reject) => {
          this.dbRealTime.list(this.suffixes.books).push(book).then(
            () => resolve(),
            (error) => reject(error));
        });
    }

    getAllBooks(): Observable<Book[]> {
      return this.getAll(this.suffixes.books);
    }

  }

, и все же я не понимаю, почему у меня возникает эта ошибка:

 ERROR in src/app/common/services/abstract.service.ts(59,5): error TS2322: 
 Type 'Observable<{}[]>' is not assignable to type 'Observable<T[]>'.
 Type '{}[]' is not assignable to type 'T[]'.
 Type '{}' is not assignable to type 'T'.

Я уже пробовал другие проблемы здесь на StackOverflow, такие как размещение <T[]> между методом и круглыми скобками для безуспешного приведения ответа (или события после и до).

Спасибодля чтения, и я надеюсь, что вы поможете.

...