sanguk.dev
작성완료
타입스크립트 타입 가드

타입스크립트 타입 가드

유니온 타입을 사용할 때 공통된 속성에만 접근할 수 있으며, 공통되지 않은 속성에 접근하기 위해서는 타입 단언을 사용한다. 타입 가드를 정의하면 true, false를 통해 타입을 구분하고 해당 타입의 속성에 접근할 수 있다.

TypeScript

유니온 타입을 사용하게 되면 사용한 타입들의 공통된 속성에만 접근할 수 있다.
따라서, 공통되지 않은 속성에 접근하고 싶을 때 '타입 단언'을 사용하면 된다.

typescript
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를 통해 해당 타입인지 아닌지 구분한 다음 해당 타입의 속성에 접근이 가능해진다.

typescript
// 타입 가드 정의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);
}