[typescript] 조건문에서의 가독성을 높이기 위한 권장 사항

조건문은 프로그램에서 매우 중요한 부분이며, 특히 가독성을 높이는 데에 중요한 역할을 합니다. TypeScript를 사용하는 경우에도 조건문을 사용할 때 가독성을 높이기 위해 몇 가지 권장 사항이 있습니다.

타입 가드 활용

타입 가드(Type Guard)를 활용하여 조건문 내에서 타입을 체크하는 것이 중요합니다. 이를 통해 코드의 가독성을 높일 뿐만 아니라 프로그램의 안정성을 높일 수 있습니다. 아래는 typeofinstanceof를 사용한 타입 가드의 예시입니다.

interface Bird {
  fly(): void;
}

interface Fish {
  swim(): void;
}

function getPet(): Bird | Fish {
  // ...
}

let pet = getPet();
if ("fly" in pet) {
  pet.fly(); // TypeScript는 이 시점에서 pet을 Bird 타입으로 이해합니다.
} else {
  pet.swim(); // TypeScript는 이 시점에서 pet을 Fish 타입으로 이해합니다.
}

분산된 조건문 대신 Union Types 사용

가능한 경우, Union Types를 사용하여 분산된 조건문을 대체하는 것이 좋습니다. 이를 통해 코드를 단순화하고 가독성을 높일 수 있습니다.

type Result = { success: true, value: number } | { success: false, error: string };

function processResult(result: Result) {
  if (result.success) {
    console.log(result.value);
  } else {
    console.error(result.error);
  }
}

태그된 유니언 사용

태그된 유니언(Tagged Union)을 활용하여 조건문에서 보다 명확한 로직을 구현할 수 있습니다. 다음 예시를 통해 태그된 유니언의 활용을 살펴보겠습니다.

type Square = { kind: "square", size: number };
type Rectangle = { kind: "rectangle", width: number, height: number };

function getArea(shape: Square | Rectangle): number {
  switch (shape.kind) {
    case "square":
      return shape.size * shape.size;
    case "rectangle":
      return shape.width * shape.height;
  }
}

조건문을 작성할 때 위의 권장 사항을 고려하여 코드의 가독성을 향상시키고 유지보수성을 높일 수 있습니다.

이상으로 TypeScript 조건문에서의 가독성을 높이기 위한 권장 사항에 대해 알아보았습니다. 함께 적용해보시기 바랍니다.

참고 자료