→ 데이터의 타입을 알 수 없거나, 될 수 있는 타입이 여러개일때, 조건문을 통해 데이터의 타입을 좁혀나가는 것.

→ elice가 Human인지, Dog인지 확신할 수 없는 상태.
구별된 유니온 → 타입스크립트가 타입을 추론할 수 있도록 단서를 주는 것.
- 타입을 구별할 수 있는 단서가 있는 유니온 타입
- 구별된 유니온, 태그(타입을 구별할 수 있는 단서)된 유니온, 서로소 유니온이라 부르기도 함.


→ 객체가 어떤 클래스의 객체인지 구별할 때 사용하는 연산자.

인스턴스 instanceof 클래스와 같이 사용함.**
→ 데이터의 타입을 반환하는 연산자.

typeof 데이터 === ‘string’ 형식으로 사용.**
typeof 데이터 === ‘undefined’ 처럼 undefined도 체크 가능.데이터 == ‘null’과 같이 쓰면 null, undefined 둘 다 체크 가능.
문자열 A in 오브젝트 → 오브젝트의 key 중 문자열 A가 존재하는가.**
→ 특정 타입의 하위 타입, 구체적인 타입을 의미함.

→ 사용자 정의 함수를 사용해 타입 가드 가능.
오픈소스 sindresorhus/is를 사용하여 가독성있게 타입 체크가 가능함.

Yarn add @sindresorhus/is
npm install @sindresorhus/is