【问题标题】:Argument of type '{ message: string; }' is not assignable to parameter of type 'any[]''{ message: string; 类型的参数}' 不可分配给“any[]”类型的参数
【发布时间】:2019-11-02 12:35:15
【问题描述】:

我正在使用 FireBase 处理 LinkedIn 学习库中的一个项目。我已经能够从电影中找出一些更新,但我被困在一个。 我收到错误

'{ message: string; 类型的参数}' 不能分配给“any[]”类型的参数。 对象字面量只能指定已知属性,并且“任何[]”类型中不存在“消息”。 从此代码:

   export class AppComponent {
 items: AngularFireList<any[]>;
 msg  =  '';

 constructor(public af: AngularFireDatabase) {
  this.items = af.list('/messages');
 }
 send(chatMsg: string) {
   this.items.push({ message: chatMsg });
   this.msg = '';
 }
    }

错误似乎来自this.items.push({message: chatMsg });

我已经从“@angular/fire/database”导入了 AngularFireDatabase 和 AngularFireList;所以我不确定问题是什么。我正在尝试学习 Angular,现在有点迷茫。

【问题讨论】:

  • 将``项目:AngularFireList``转换为``项目:AngularFireList``

标签: angular firebase


【解决方案1】:

基于示例in documentation here,您需要:

items: AngularFireList<any>;

代替items: AngularFireList&lt;any[]&gt;;

【讨论】:

  • 感谢@nircraft,基于示例我能够为我完成这项工作。
【解决方案2】:

AngularFireList 需要一个表示列表中单个项目的通用参数。目前,您指定列表中的每个项目都是any[]

您可能希望类型定义改为 AngularFireList&lt;any&gt;

【讨论】:

  • 谢谢,解决了原来的问题,现在我在控制台中收到此错误: InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe'
  • @Jim 请针对不同的问题打开一个新问题,如果它可以帮助您解决原来的问题,请选择一个接受的答案。在此处发布指向您的新问题的链接,我会看看 :)
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多