[typescript] 유니온 타입으로 switch 문을 간결하게 처리할 수 있나요?

예를 들어, 다음은 유니온 타입과 switch 문을 사용하여 간단한 예제를 보여줍니다.

type Shape = "circle" | "square" | "triangle";

function getArea(shape: Shape, size: number): number {
  switch (shape) {
    case "circle":
      return Math.PI * Math.pow(size / 2, 2);
    case "square":
      return Math.pow(size, 2);
    case "triangle":
      return (Math.sqrt(3) / 4) * Math.pow(size, 2);
    default:
      throw new Error("Unsupported shape");
  }
}

console.log(getArea("circle", 5)); // Output: 19.634954084936208
console.log(getArea("square", 5)); // Output: 25
console.log(getArea("triangle", 5)); // Output: 10.825317547305485

위 예제에서는 Shape 유니온 타입을 정의하고, switch 문을 사용하여 각 도형에 따른 넓이를 계산하는 함수를 구현했습니다.

이를 통해 유니온 타입을 사용하여 switch 문을 간결하게 처리할 수 있음을 확인할 수 있습니다.