我有一个我搜索过的Firebase
个对象列表,然后我想对这个对象做各种各样的事情。我面临的问题是Firebase
返回的对象比我想要的界面更复杂。我的界面名为PlaceOnMap
,如下所示:
export interface Location {
address: string,
latitude: number,
longitude: number
}
我想要调用的函数最好看起来像这样:
addPlaceOnMap(mapPoint: { $key: string, PlaceOnMap } ) {
this.placeOnMapIds.push(mapPoint.$key);
this.newPlaceOnMap.next(mapPoint.lat, mapPoint.lng);
this.uploadToFirebase(mapPoint.$key, {
name: mapPoint.address,
lat: mapPoint.lat,
lng: mapPoint.lng
});
}
关键是,我想将$key
收到的Firebase
与我的界面PlaceOnMap
通常拥有的密钥合并。
为了完整性,我从Firebase
收到的存储对象如下所示:
{
address: string,
latitude: number,
longitude: number,
street: string,
country: string,
description: string
}
我想我可以使用Typescript的联盟,但这不会像我希望的那样干净,因为我总是希望得到这个。我知道我可以创建一个新的界面,但这似乎是一种矫枉过正,因为我只使用它一次。
如果没有别的办法,我会使用any
或使用两个参数(可能是前者)。