AzLearn

تمرين إعادة البناء

Temperature Converter

أعد كتابة محوّل درجات حرارة TypeScript بين C و F و K.

typescript ~10 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
type TemperatureUnit = "C" | "F" | "K";

type Temperature = {
  value: number;
  unit: TemperatureUnit;
};

function toCelsius(temperature: Temperature): number {
  if (temperature.unit === "F") {
    return (temperature.value - 32) * (5 / 9);
  }
  if (temperature.unit === "K") {
    return temperature.value - 273.15;
  }
  return temperature.value;
}

function fromCelsius(celsius: number, unit: TemperatureUnit): Temperature {
  if (unit === "F") {
    return { value: celsius * (9 / 5) + 32, unit };
  }
  if (unit === "K") {
    return { value: celsius + 273.15, unit };
  }
  return { value: celsius, unit };
}

function convert(temperature: Temperature, unit: TemperatureUnit): Temperature {
  return fromCelsius(toCelsius(temperature), unit);
}

const result = convert({ value: 22, unit: "C" }, "F");
console.log(`${result.value.toFixed(1)}°${result.unit}`);
اكتب هنا