Solución
solution.tsTypeScript
type productCategories = "electronics" | "clothing" | "food"
export function getProductFinalPrice(price: number, category: productCategories, stock: number): number {
const PRICE_TAX = 1.21;
// Verificar si el stock es válid
if (stock <= 0) return -1;
// Verificar si el precio es válido
if (price <= 0) return -1;
let discount = getDiscount(category,price);
// Calcular el precio con descuento aplicado
let discounted = price - discount;
// Aplicar el impuesto sobre el precio con descuento
let result = discounted * PRICE_TAX;
// Redondear a dos decimales
return Math.round(result * 100) / 100;
}
function getDiscount(productCategory:productCategories,productPrice:number):number {
const ELECTRONIC_DISCOUNT = 0.15;
const CLOTHING_DISCOUNT = 0.20;
const FOOD_DISCOUNT = 0.05;
let discount = 0
switch(productCategory) {
case "electronics":
discount = productPrice * ELECTRONIC_DISCOUNT;
break;
case "clothing":
discount = productPrice * CLOTHING_DISCOUNT
break;
case "food":
discount = productPrice * FOOD_DISCOUNT
break;
default:
discount = 0;
break;
}
return discount;
}0respuestas