[typescript] 타입 가드 함수와 함께 사용하는 타입 추론

타입스크립트(TypeScript)에서는 타입 가드 함수를 사용하여 런타임 동작 중에 변수의 타입을 검사하고, 이에 따라 타입을 추론할 수 있습니다. 이 기능은 코드를 보다 안전하고 가독성 높은 방식으로 작성할 수 있도록 돕습니다. 이번 포스트에서는 타입 가드 함수와 함께 사용하는 타입 추론에 대해 알아보겠습니다.

타입 가드 함수란?

타입 가드 함수는 특정 타입을 검사하고 이를 기반으로 그 타입을 좁히는 역할을 합니다. 이를 통해 코드의 안전성을 유지하면서 유연한 타입 처리가 가능해집니다. 타입 가드 함수는 보통 typeof, instanceof, 또는 사용자 정의 함수 등으로 작성됩니다. 아래는 간단한 타입 가드 함수의 예시입니다.

function isNumber(value: any): value is number {
  return typeof value === 'number';
}

위 코드에서 isNumber 함수는 valuenumber 타입인지를 검사하고, 해당 여부에 따라 boolean 값을 반환합니다.

타입 추론과의 결합

타입 가드 함수를 사용하면 조건문 내에서의 변수의 타입을 좁힐 수 있습니다. 이를 통해 조건문 블록 내에서의 변수에 대해 새로운 타입의 메소드나 프로퍼티에 접근할 수 있습니다.

function printLength(value: string | number) {
  if (typeof value === 'string') {
    console.log(value.length); // `value`는 여기서 `string` 타입으로 추론됨
  } else {
    console.log(value); // `value`는 여기서 `number` 타입으로 추론됨
  }
}

위 코드에서 printLength 함수는 string 또는 number를 받아 각각의 타입에 따라 다른 동작을 하도록 만들어졌습니다. 조건문 내에서 타입을 검사하고, 이에 따라 value 변수가 string인 경우 length 프로퍼티에 접근하고 number인 경우 값을 그대로 출력하고 있음을 볼 수 있습니다.

타입 가드 함수를 사용하여 타입 추론을 활용하면 코드의 안전성과 가독성을 높일 수 있습니다. 따라서 타입스크립트를 사용하는 경우, 타입 가드 함수와 타입 추론을 적절히 활용하여 더욱 견고하고 유연한 코드를 작성할 수 있습니다.