首页 > 解决方案 > 我收到一个错误“传播类型只能从对象 types.ts(2698) 创建”

问题描述

import { Injectable } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
import { map } from 'rxjs/operators';

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

  constructor(private db: AngularFirestore) { }

  getBuildList() {
    // return this.db.collection('Builds').valueChanges();
    return this.db.collection('Builds').snapshotChanges().pipe(
      map(docArray => {
        return docArray.map(doc => {
          console.log('==', doc.payload.doc.id);
          console.log('$==$', doc.payload.doc.data());
          return{
            id: doc.payload.doc.id,
            ... doc.payload.doc.data()
          }
        })
      })
    )
  }
}

在最后一行我得到了错误。我认为这与打字稿有关。任何帮助表示赞赏

标签: angulartypescriptfirebasegoogle-cloud-firestore

解决方案


使用as关键字:

... doc.payload.doc.data() as {} 

这将告诉编译器将其doc.payload.doc.data()视为对象。


推荐阅读