(Typescript) Type Guard 개념 및 예제

TypeGuard란?

TypeScript에서 변수의 타입을 보증하기 위해 사용하는 함수

TypeScript는 컴파일 중에 코드에서 발생할 수 있는 유형 관련 오류를 방지하기 위해 정적 유형 검사를 수행합니다.

그러나 경우에 따라 변수의 유형이 동적으로 변경될 수 있는 경우가 있습니다.

이 경우 TypeGuard는 변수의 유형을 확인하고 해당 유형의 코드가 실행하기에 안전한지 확인하는 데 사용됩니다.

TypeGuard는 주로 조건부 유형과 함께 사용되며 변수가 특정 유형인지 확인하는 데 사용됩니다.

TypeGuard 규칙

TypeGuard 기능은 ~이다 이름이 키워드로 시작하는 함수로 표현됩니다.

함수의 이름 ~이다 다음은 확인하려는 유형의 이름입니다. 예를 들어, 숫자이다라는 TypeGuard 함수를 생성한 예입니다.

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

위의 코드에서 isNumber 함수는 값이 숫자 유형인지 확인하고 결과를 부울로 반환합니다.

value is number는 반환 값으로 사용되며 반환 값이 true인 경우 값이 숫자 유형임을 나타냅니다.

따라서 isNumber 함수로 값을 확인하면 다음과 같이 쓸 수 있다.

function processValue(value: unknown) {
  if (isNumber(value)) {
    // value is number
    console.log(value + 1);
  } else {
    console.log('value is not a number');
  }
}

숫자이다 기능으로 확인할 때if (숫자(값)) 문장을 사용하다

이때 is숫자(값)의 반환값이 참이면 그 값은 숫자형이 되어 연산하기에 안전하다.

값이 숫자 유형이 아니면 Else 블록이 실행되고 처리됩니다.

TypeGuard 기능을 사용하면 변수가 특정 유형인지 확인하고 결과에 따라 안전하게 연산을 수행할 수 있습니다.