typescript - Står inför ett problem med returtyp när jag utökar kundtjänstlistmetod i medusa js
Jag vill lägga till ett annat fält i kundlistesvaret som visar hans status, om kunden är aktiv, avaktiverad eller raderad. Min kod skickar mig ett fält customerStatus i svaret tillsammans med andra kundfält, men det visar ett fel före insättning på mitt updatedResult, i sista raden return [updatedResult, count].
Här är min kodbit
async listAndCount(
selector: Selector<Customer> & { q?: string; groups?: string[] },
config: FindConfig<Customer> = {
relations: [],
skip: 0,
take: 50,
order: { created_at: "DESC" },
}
): Promise<[Customer[], number]> {
const [result, count]: [Customer[], number] = await super.listAndCount(selector, config);
let customerStatus = '';
const updatedResult = result.map(data => {
if(data.isActive === true && data.isDeleted === false)
customerStatus = 'Active';
else if (data.isActive === false && data.isDeleted === false)
customerStatus = 'Deactivated';
else if (data.isActive === false && data.isDeleted === true)
customerStatus = 'Deleted';
return { ...data, customerStatus: customerStatus };
});
return [updatedResult, count] ;
}
}
Felet som visas är nämnt nedan:
Type '{ customerStatus: string; isActive: boolean; isDeleted: boolean; email: string; first_name: string; last_name: string; billing_address_id: string; billing_address: Address; shipping_addresses: Address[]; ... 9 more ...; updated_at: Date; }[]' is not assignable to type 'Customer[]'.
Property 'beforeInsert' is missing in type '{ customerStatus: string; isActive: boolean; isDeleted: boolean; email: string; first_name: string; last_name: string; billing_address_id: string; billing_address: Address; shipping_addresses: Address[]; ... 9 more ...; updated_at: Date; }' but required in type 'Customer'.ts(2322)
customer.d.ts(18, 13): 'beforeInsert' deklareras här.
Dessutom är denna beforeInsert-metod privat i kundklassen och den låter mig inte ändra returtypen för listAndCount-metoden.
Jag försökte ändra returtypen och titta på before insert-metoden, men den är privat. updatedResult i returuttrycket visar ett fel men det hindrar mig inte från att köra min kod.