我对Angle和Typescript还是陌生的,我想通过this tutorial来学习它。教程中有一个处理程序,如下所示:
removeChat(chat: Chat): void {
this.chats = this.chats.map<Chat[]>(chatsArray => {
const chatIndex = chatsArray.indexOf(chat);
chatsArray.splice(chatIndex, 1);
return chatsArray;
});
}
但是,本教程有些过时了,因为它认为of
和map
是Observable的方法,而不再是这种情况。因此,我尝试通过分别导入它们来修复它。 of
运作良好(用于获取模拟数据并将其设置为this.chats)。 map
给我带来了问题,可能是因为我对语法没有足够的了解(我精通Javascript,但是打字稿对我来说仍然很新)。所以我尝试了这样的事情
import { map } from 'rxjs/operators';
// later...
removeChat(chat: Chat): void {
this.chats = map<Chat[], {}>(chatsArray => {
const chatIndex = chatsArray.indexOf(chat);
chatsArray.splice(chatIndex, 1);
return chatsArray;
});
}
但是我遇到了这个错误:
类型'OperatorFunction'无法分配给类型 “可观察”。类型中缺少属性“ _isScalar” “ OperatorFunction”。
我在做什么错了?
答案 0 :(得分:1)
目前,尚不知道应该对哪个Observable
进行操作。相反,您应该将其与pipe
结合使用,如下所示:
removeChat(chat: Chat): void {
this.chats = this.chats.pipe(
map(chatsArray => {
const chatIndex = chatsArray.indexOf(chat);
chatsArray.splice(chatIndex, 1);
return chatsArray;
}));
}