Angular Ionic 2错误:Typescript错误提供的参数与调用目标的任何签名不匹配

Angular Ionic 2错误:Typescript错误提供的参数与调用目标的任何签名不匹配,angular,typescript,parameters,ionic2,Angular,Typescript,Parameters,Ionic2,我正在学习关于Ionic 2应用程序的教程。添加以下代码时,我收到一个错误: removeChat(chat: Chat): void { this.chats = this.chats.map<Chat[]>(chatsArray => { const chatIndex = chatsArray.indexOf(chat); chatsArray.splice(chatIndex, 1); return chatsA

我正在学习关于Ionic 2应用程序的教程。添加以下代码时,我收到一个错误:

removeChat(chat: Chat): void {
    this.chats = this.chats.map<Chat[]>(chatsArray => {
        const chatIndex = chatsArray.indexOf(chat);
        chatsArray.splice(chatIndex, 1);

        return chatsArray;
    });
}
removeChat(chat:chat):无效{
this.chats=this.chats.map(chatsArray=>{
const chatIndex=chatsArray.indexOf(chat);
chatsArray.拼接(chatIndex,1);
返回chatsArray;
});
}
在类为“option remove”的按钮上发生单击事件时调用此函数


{{chat.title}

{{chat.lastMessage.content}

{{chat.lastMessage.createdAt | amCalendar}} 去除

不确定错误消息的准确程度,但它的行
this.chats.map(chatsArray=>{

将采用对象参数非数组的函数。在这种情况下不需要使用此函数。 尝试:


this.chats
是一个对象数组还是数组?它是一个对象数组objects@helenkitt我无法重现此问题…请确保已正确设置链接中的所有内容。如果无法解决,请尝试在plunker中重现此问题:)尝试改为使用上述代码,但这产生了两个新错误:
Typescript错误属性'indexOf'在类型'Observable'上不存在。
Typescript错误属性'splice'在类型'Observable'上不存在。
因此chats是一个可观察的?在这种情况下,您可能缺少
导入'rxjs/add/operator/map'
chats是Observable类型-我添加了此导入,但仍然是原始错误消息。我已经导入了Observable,是否也必须单独导入函数?是的。您使用的大多数rxjs函数都需要明确导入。
<ion-content class="chats-page-content">
<ion-list class="chats">
    <ion-item-sliding *ngFor="let chat of chats | async">
        <button ion-item class="chat">
            <img class="chat-picture" [src]="chat.picture">
            <div class="chat-info">
                <h2 class="chat-title">{{chat.title}}</h2>

                <span *ngIf="chat.lastMessage" class="last-message">
                    <p *ngIf="chat.lastMessage.type == 'text'" class="last-message-content last-message-content-text">
                        {{chat.lastMessage.content}}
                    </p>
                    <span class="last-message-timestamp">{{chat.lastMessage.createdAt | amCalendar }}</span>
                </span>
            </div>
        </button>
        <ion-item-options class="chat-options">
            <button ion-button color="danger" class="option option-remove" (click)="removeChat(chat)">Remove</button>
        </ion-item-options>
    </ion-item-sliding>
</ion-list>
removeChat(chat: Chat): void {
  const chatIndex = this.chats.indexOf(chat);
  this.chats.splice(chatIndex,1);
}