두 가지 이상의 타입을 결합한 상태에서 조건분기를 할 때 일반적으로 서로소 유니온 타입을 사용한다. 하지만 서로소 유니온 타입을 사용할 수 없는 환경도 존재하는데 이럴 때 타입 가드를 사용한다.아래 두 개의 타입을 보자. 강아지 타입과 고양이 타입을 선언해주었다. 이렇게 우리가 타입을 정의하는 경우에는 서로소 유니온 타입으로 타입 좁히기를 진행했다.하지만, 내장되어 있는 클래스라던가 인터페이스라면 우리가 직접 커스텀을 할 수 없기에 서로소 유니온 타입으로 설정하는 것이 불가능하다.서로소 유니온 타입 정의가 안된다면 조건 분기가 다음과 같이 이뤄져야 한다. 보시다시피 직관성이 사라졌다. 이런 코드에 경우에 각 조건분기에서 어떤 타입인지 주석을 달아 표기해줘야 한다.또한, 만약 Dog 타입의 isBark가 ..