address
为映射。它的数据库中有很多keys
。我不想把所有的keys
传递给我的其他API。
export interface BookingModel {
address: Address
}
我只想把这三种类型传递给API
export interface Address {
location: string,
flatNo: string,
id: string
}
我像这样传递地址细节。
{
'addressDetails': bookingModel.address,
}
但是addressDetails
有所有的键,而不是指定的键。
你可以写一个pick
函数,以一种类型安全的方式精简你的全脂地址:
const pick = <T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> => {
const keySet = new Set(keys);
return Object.fromEntries(Object.entries(obj).filter(
([k]) => keySet.has(k as K))) as Pick<T, K>;
}
然后使用:
{
addressDetails: pick(bookingModel.address, 'location', 'flatNo', 'id'),
}