[typescript] 타입 가드를 사용한 비동기 작업 처리 방법

TypeScript를 사용하면 타입 가드를 활용하여 비동기 작업을 보다 안전하게 처리할 수 있습니다. 이를 통해 프로그램의 안정성을 향상시키고 예상치 못한 오류를 방지할 수 있습니다. 이번 글에서는 TypeScript의 타입 가드를 사용하여 비동기 작업을 처리하는 방법에 대해 살펴보겠습니다.

비동기 작업과 타입 안정성

비동기 작업을 처리할 때 주로 Promise나 async/await를 사용합니다. 하지만 이러한 비동기 작업은 실행 결과를 확신할 수 없기 때문에 타입의 안정성이 떨어질 수 있습니다. 이때 타입 가드를 사용하여 타입 안정성을 유지할 수 있습니다.

타입 가드를 사용한 비동기 작업 처리

Promise와 타입 가드

Promise를 사용하는 경우, then 메서드 내에서 타입 가드를 이용하여 결과값의 타입을 명확히 할 수 있습니다. 예를 들어, 다음과 같이 타입 가드를 사용할 수 있습니다.

function fetchData(): Promise<string | number> {
  // 비동기 작업 수행
}

fetchData().then((data) => {
  if (typeof data === 'string') {
    // data는 string 타입으로 추론됨
  } else {
    // data는 number 타입으로 추론됨
  }
});

async/await와 타입 가드

async/await를 사용하는 경우, 함수 내부에서 타입 가드를 활용하여 비동기 작업의 결과값을 명시적으로 타입 변환할 수 있습니다. 예를 들어, 다음과 같이 타입 가드를 사용할 수 있습니다.

async function fetchData(): Promise<string | number> {
  // 비동기 작업 수행
}

const result = await fetchData();
if (typeof result === 'string') {
  // result는 string 타입으로 추론됨
} else {
  // result는 number 타입으로 추론됨
}

마무리

TypeScript를 사용하여 비동기 작업을 처리할 때 타입 가드를 적절히 활용하면 프로그램의 안정성을 높일 수 있습니다. 이를 통해 예기치 못한 오류를 방지하고 코드의 가독성을 개선할 수 있습니다. TypeScript의 강력한 타입 시스템을 적극 활용하여 안전하고 견고한 프로그램을 개발하는 데 도움이 될 것입니다.

참고 자료: