본문 바로가기
언어/TypeScript

타입 가드

by seacode 2025. 4. 17.

타입 가드

  • 원하는 타입으로 타입을 좁히기 위한 작업
type Age = 'string' | 'number'

function getAge(age: Age) { .. }

이 경우 함수 파라미터로 문자열이 와야할까 숫자가 와야할까? 둘 다 올수있지만, 그렇다고 함수 안에서 age.length 이런 식으로 접근하면 에러가 발생한다. 그 이유는 age의 type이 확정되지 않았기 때문. 따라서, 아래와 같이 예외 처리를 통해 타입을 좁히는 것을 타입가드라고 한다.

...
if (typeof age === 'string') { age.length; ....}

typeof, instanceof

이 연산자들을 타입 가드 연산자라고 한다.

이외에도 커스텀 타입 가드 함수를 만들 수도 있다.

function isString(age: string | number): age is string { 
	return typeof age === 'string';
};

function getAge(age: string | number) {
  if (isString(age)) {
    // 이 블록에서 age의 타입은 문자열로 추론됨
    age.length;
  }
}

문자열 or 숫자 타입을 받아서 문자열로 범위를 좁혀주는 타입 가드 함수로써 isString 을 만들고, 사용할 수 있다.

'언어 > TypeScript' 카테고리의 다른 글

spread operator  (0) 2025.04.30
Type Assertion (as 사용법)  (0) 2025.04.16
type vs interface  (0) 2025.04.16
타입 호환성  (0) 2025.04.15
타입 추론  (0) 2025.04.15