A|B A타입 B타입 둘 중 하나(or)
A&B A타입이면서 B타입(and)
✔️타입이 같을때 o
✔️타입이 다를때: error
✔️타입이 포함 관계일때 o or error
데이터의 타입을 알 수 없거나 될 수 있는 타입이 여러개라고 가정할때 조건문을 통해 데이터의 타입을 좁혀 나가는 것
⭐instanceof
- 클래스도 타입. 객체가 어떤 클래스의 객체인지 구별할 때 사용하는 연산자
인스턴스 intanceof 클래스 로 사용
⭐typeof
- 데이터의 타입을 반환하는 연산자
⭐in
- 문자열 A in 오브젝트 : 오브젝트의 키 중에 문자열 A가 존재하는가
⭐literal type guard
- 리터럴타입: 특정 타입의 하위 타입. 구체적인 타입
⭐ 사용자 정의 함수
- type 가드에 유용한 오픈소스
접근하는 객체의 프로퍼티가 null 또는 undefined일 수 있는 optional property의 경우 if문을 사용하지 않고 넘어가게 하는 체이닝 방법
&& : false, null, undefinde, '',0,-0,NaN 값 체크
?. : null과 undefined만 체크
A??B
null, undefined를 제외한 falsy값을 그대로 리턴하고 싶은 경우 사용
기존의 A||B는 A가 falsy한 값인 경우 B 반환
파라미터만 달라지고 비슷한 코드가 반복되고 있는 상황
->파라미터의 형태가 다양한 여러 케이스에 대응하는 같은 이름을 가진 함수를 만드는 것
-> 함수의 다양한 형태를 지원
1. 선언 : 함수가 어떤 파라미터 타입들을 다룰것인지 선언
- 함수의 이름이 같아야 한다
- 매개변수의 순서는 서로 같아야 한다
- 반환 타입이 같아야 한다
2. 구현 : 각 파라미터 타입에 대응하는 구체적인 코드를 작성
타입스크립트가 추론하지 못하는 타입을 as keyword를 통해 명시해주는것
객체의 특정 value에 접근할때 그 value의 key를 문자열로 인덱싱해 참조하는 방법
- index signature : 자바스크립트이 인덱스 시그니쳐에 대한 타입 지정
-- 객체의 프로퍼티를 명확히 알 수 없을때 사용