작성완료

타입스크립트 타입 가드
유니온 타입을 사용할 때 공통된 속성에만 접근할 수 있으며, 공통되지 않은 속성에 접근하기 위해서는 타입 단언을 사용한다. 타입 가드를 정의하면 true, false를 통해 타입을 구분하고 해당 타입의 속성에 접근할 수 있다.
유니온 타입을 사용하게 되면 사용한 타입들의 공통된 속성에만 접근할 수 있다.
따라서, 공통되지 않은 속성에 접근하고 싶을 때 '타입 단언'을 사용하면 된다.
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);
}