Solución
solution.tsTypeScript
const ELECTRONICS_DESC:number = 0.15;
const CLOTHING_DESC:number = 0.20;
const FOOD_DESC:number = 0.05;
const TAX_RATE:number = 1.21;
function getDiscount(price:number, category: string): number {
let categoriesDicount = new Map<string, number>([
["electronics", ELECTRONICS_DESC], ["clothing", CLOTHING_DESC], ["food", FOOD_DESC]
]);
return price * (categoriesDicount.get(category) ?? 0);
}
export function getProductFinalPrice(price: number, category: string, stock: number): number {
// Verificar si el stock y precio es válido
if (stock <= 0 || price <= 0) return -1;
// Aplicar descuento según la categoría del producto
let discount = getDiscount(price, category);
// Calcular el precio con descuento aplicado
let discounted = price - discount;
// Aplicar el impuesto sobre el precio con descuento
let result = discounted * TAX_RATE;
// Redondear a dos decimales
return Math.round(result * 100) / 100;
}0respuestas