[typescript] 타입 가드의 필요성
타입스크립트는 정적 타입을 갖는 언어로, 변수의 타입을 명시하고 해당 타입에서 지원하는 메소드와 속성을 활용할 수 있다. 하지만 때로는 런타임에 변수의 타입을 확실하게 알 수 없는 경우가 있을 수 있다. 이때 타입 가드(Type Guard)를 사용하여 변수의 타입을 확인하고 해당 타입에서 안전하게 작업할 수 있다.
타입 가드란?
타입 가드는 런타임에 변수의 타입을 확인하고 그에 따라 타입을 조정하는 기법이다. 주로 typeof
, instanceof
, in
, guard function
등을 활용하여 변수의 타입을 추론하는 방식이다.
사용 예시
아래는 타입 가드를 사용하여 number
와 string
타입을 구분하는 예시이다.
function printLength(input: number | string) {
if (typeof input === 'number') {
console.log(`입력값은 숫자입니다. 값은 ${input}이고 길이는 0입니다.`);
} else if (typeof input === 'string') {
console.log(`입력값은 문자열입니다. 값은 ${input}이고 길이는 ${input.length}입니다.`);
} else {
// 이 부분은 실행될 확률이 거의 없지만 컴파일러에 의해 검증된다.
const _exhaustiveCheck: never = input;
}
}
위 예시에서 typeof
를 사용하여 number
와 string
을 구분하고, 각각에 맞는 작업을 수행한다. 또한 never
타입을 사용하여 모든 경우에 대한 처리가 되었음을 컴파일러에게 알려준다.
타입 가드를 활용하면 런타임에 변수의 타입을 안전하게 확인하고 해당 타입에 맞게 코드를 작성할 수 있다. 이를 통해 타입 안정성을 높이고 프로그램 안정성을 확보할 수 있다.
결론
타입 가드는 타입스크립트의 강력한 기능 중 하나로, 런타임에 타입 안전성을 유지하는데 도움을 준다. 변수의 타입을 명확하게 알 수 없는 상황에서 활용하여 안전하고 확실한 코드를 작성할 수 있기 때문에 프로젝트의 유지보수성과 안정성을 높이는데 기여한다.
참고 문헌:
앞으로 다양한 상황에서 타입 가드를 활용하여 안전하고 효율적인 코드를 작성하는데 적극적으로 활용해보자.