User-Defined Type Guards

Jung taeWoong·2021년 5월 8일
0

typescript

목록 보기
5/11
post-thumbnail

사용자 정의 타입 가드

  • 일부 스코프에서 타입을 보장하는 런타임 검사를 수행하는 표현식
  • 타입 가드를 정의하려면 반환 타입이 타입 명제(type predicate) 인 함수를 정의하면 된다.
  • 타입 명제 : argName is Type의 형태
  • 타입을 보장하는 함수를 정의하여 조건문을 통해 컴파일 에러없이 메소드 실행

사용 예제

// 반환 타입인 `pet is Fish`는 pet이 Fish인 경우에만이라는 타입명제
function isFish(pet: Fish | Bird): pet is Fish {
  return (pet as Fish).swim !== undefined;
}

let pet = getSmallPet();

// 사용자 정의 타입 가드  사용 예제

if (isFish(pet)) { // Fish 인경우에만 true이므로 fish
  pet.swim();
} else {	 // Fish 아니면 Bird이므로 Bird
  pet.fly();	
}
profile
Front-End 😲

0개의 댓글