타입스크립트 타입 가드

타입 가드if
avatar
2025.04.10
·
2 min read

유니온 타입을 사용하게 되면 사용한 타입들의 공통된 속성에만 접근할 수 있다.

따라서, 공통되지 않은 속성에 접근하고 싶을 때 '타입 단언'을 사용하면 된다.

if ((tony as Developer).skill) {
    var skill = (tony as Developer).skill;
    console.log(skill);
} else if ((tony as Person).age) {
    var age = (tony as Person).age;
    console.log(age);
}

타입 단언이 반복되면 가독성이 줄기 때문에 '타입 가드'를 사용하면 좋다.


타입 가드 적용

타입가드를 정의함으로써 true, false를 통해 해당 타입인지 아닌지 구분한 다음 해당 타입의 속성에 접근이 가능해진다.

// 타입 가드 정의
function isDeveloper(target: Developer | Person): target is Developer {
    return (target as Developer).skill !== undefined;
}

if (isDeveloper(tony)) {
	// Developer타입일 경우
    console.log(tony.skill);
} else {
	// Person 타입일 경우
    console.log(tony.age);
}






- 컬렉션 아티클