这是我的ChatMessage模型:
export class ChatMessage{
$key?: string;
email?:string;
userName?:string;
message?:string;
timeSent?: Date = new Date();
}
这是我的AngularFireList代码:
chatMessages: AngularFireList<ChatMessage[]>;
const timestamp = this.getTimeStamp();
//const email = this.user.email;
const email = "example@abc.com";
this.chatMessages.push({
message: msg,
timeSent: timestamp,
email: email,
//userName: this.userName,
userName: "user-test",
});
getTimeStamp(){
const now = new Date();
const date = now.getUTCFullYear() + '/' +
(now.getUTCMonth() + 1) + '/' +
now.getUTCDate();
const time = now.getUTCHours() +':'+
now.getUTCMinutes() + ':'+
now.getUTCSeconds();
return (date + ' '+ time);
}
我有一个错误说:
message:'类型的参数'{message:string; timeSent:string;电子邮件:string; userName:string; }'不能分配给'ChatMessage []'类型的参数 . 对象文字只能指定已知属性,而'ChatMessage []'类型中不存在'message' .
2 回答
问题是你的
getTimeStamp()
函数,它返回string
,而不是Date
.因此,当你这样做
您尝试推送的对象不满足接口 . 您可以修改接口以使用
timeSent
类型的字符串,或修改getTimeStamp
函数以返回Date
要么
chatMessages: AngularFireList<ChatMessage[]>;
替换为
chatMessages: AngularFireList<ChatMessage>;