타입스크립트 - 타입가드

dobyming·2022년 12월 23일
0

Typescript Study

목록 보기
14/17

타입 가드

타입 단언에서 이어지는 포스팅입니다.

// Refactoring using type guard 
// convention : type guard의 method는 is(해당타입)으로 시작 
function isDeveloper(target: Developer | Person): target is Developer {
    return (target as Developer).skill !== undefined; //skill return
} //넘겨받은 target이 Devloper에 해당하는지 check(명령어: is)

if (isDeveloper(tony)) {
    tony.skill;
} else {
    tony.age;
}

target의 type을 interface Union으로 선언합니다. 이때 함수의 반환값의 type을 지정 시,
is (인터페이스) 구문을 통해 타입 가드를 지정합니다.

isDeveloper 가 넘겨받는 target 매개변수의 타입은 Developer 로 가드됨을 의미합니다.

위와 같이 tony 변수를 넘기게 되면, Developer 인터페이스에 국한하여 타입 가드가 이루어집니다.

else 값으로는 Person 인터페이스가 넘어오는 것을 확인할 수 있습니다.

0개의 댓글