我收到错误“只能从对象 types.ts(2698) 创建传播类型”

Luk*_*ney 8 firebase typescript angular google-cloud-firestore

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()
          }
        })
      })
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*dad 34

使用as关键字:

... doc.payload.doc.data() as {} 
Run Code Online (Sandbox Code Playgroud)

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

  • 这是因为严格吗?为什么 Typescript 让我们欺骗它? (3认同)