【问题标题】:Spread types may only be created from object types. Problem arrives with Angular 9传播类型只能从对象类型创建。 Angular 9 出现问题
【发布时间】:2020-05-26 00:52:37
【问题描述】:
getIssuersCollection() {
return this.afs
  .collection('issuers')
  .snapshotChanges()
  .pipe(
    map(docArray => {
      return docArray.map(doc => {
        return {
          id: doc.payload.doc.id,
          ...doc.payload.doc.data()
        };
      });
    })
  );

}

上述代码在 Angular 8 中运行良好,但在 Angular 9 中抛出错误。有简单的修复方法吗?

【问题讨论】:

  • 您应该使用valueChanges 方法,该方法现在允许设置idField 属性来指定文档ID 将映射到的位置。
  • 可能是因为doc.payload.doc.data() 正在返回any 的类型?我建议为它分配一个自定义接口/类型。

标签: javascript angular typescript ecmascript-6 angular9


【解决方案1】:

不确定这是否有帮助,但请尝试像这样恢复订单

return {
          ...doc.payload.doc.data()
          id: doc.payload.doc.id,
};

【讨论】:

    【解决方案2】:

    我认为使用 Object.assign({},doc.payload.doc.data) 代替它进行快速修复

    或尝试 ...doc.payload.doc.data() as {}

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 2020-08-02
      • 2019-09-10
      • 2021-08-02
      • 2021-12-31
      • 2018-12-13
      • 2017-12-29
      • 1970-01-01
      相关资源
      最近更新 更多