2017-11-28 42 views
0

sendMessage関数のchat.services.tsにエラーが表示されます。オブジェクトリテラルは既知のプロパティのみを指定でき、 'ChatMessage []'タイプに 'message'が存在しません

export class ChatMessage { 
$key?: string; 
email?: string; 
userName?: string; 
message?: string; 
timeSent?: Date = new Date(); 
} 

: 私は非同期パイプをやろうとしていますが、それは私のチャットmessage.model.ts

からオブジェクトを読んでいないこれは、チャットmessage.model.tsの私のコードですまた、これは私のchat.services.tsで私のコードです:

sendMessage(msg: string){ 
const timestamp = this.getTimeStamp(); 
const email = '[email protected]'; 
this.chatMessages = this.getMessage(); 
this.chatMessages.push({ 
    message: msg, 
    timeSent: timestamp, 
    userName: 'test-user', 
    email: email }); 

    getMessage(): AngularFireList<ChatMessage[]> { 
    // Query to create Message Feed Binding 
    console.log('Calling getMessages()!') 
    return this.db.list('messages') 

} 

私は、これは明らかに何かですが、コードは私には罰金を見ない気がします。

$キーと何か関係がありますか?

+0

'getMessages'はどのように見えますか? –

+0

は、私のfirebaseデータベースに送られる前にメッセージを送信したときと同じように、getMessages()が正常に動作しているという質問を編集しました –

答えて

0

ここに私の短いバージョンのコードがあります。これは、どこにエラーが表示されるかを説明しています。まず、ここでのデモ・コードの作業ビットは次のとおりです。

export class ChatMessage { 
    $key?: string; 
    email?: string; 
    userName?: string; 
    message?: string; 
    timeSent?: Date = new Date(); 
} 

const chatMessages: ChatMessage[] = []; 

chatMessages.push({ 
    message: 'Message', 
    timeSent: new Date(), 
    userName: 'test-user', 
    email: '[email protected]' 
}); 

あなたが取得しているエラーが言うこと:

「メッセージ」タイプには存在しません「ChatMessage []」

これは面白いです...つまり、chatMessages: ChatMessage[]ChatMessage[][](チャットメッセージの配列を含む配列)のように見えます。

だから、注釈付きの興味深い行までのエラーを移動することによって、理論をテスト:私はthis.getMessage();によって返されたタイプがChatMessage[]ではありませんので、この行は、エラーを持っているだろうと予想し

this.chatMessages: ChatMessage[] = this.getMessage(); 

まだ詰まっている場合は、getMessage()メソッドをご利用ください。

関連する問題