TypeScript(심화)

EunRyeong Park·2022년 9월 28일
0

typescript

목록 보기
7/11

Union Type

A|B A타입 B타입 둘 중 하나(or)

  • 여러 타입 중 하나가 올것이라고 가정할 때 사용
  • 인터페이스에 유니온타입을 사용하는 경우 인터페이스는 유니온 타입을 확장x
    ->type과 &를 사용해야함
  • 동시에 여러 타입이 될 수 없음

Interesction Type

A&B A타입이면서 B타입(and)

  • 기존 타칩을 대체하지 않으면서 기존 타입에 새로운 필드를 추가하고 싶을때 사용 (확장하고 싶을떄)

✔️타입이 같을때 o
✔️타입이 다를때: error
✔️타입이 포함 관계일때 o or error

Type Guard

데이터의 타입을 알 수 없거나 될 수 있는 타입이 여러개라고 가정할때 조건문을 통해 데이터의 타입을 좁혀 나가는 것

  • 데이터의 타입에 따라 대응하여 에러를 최소화(타입을 통해 가드함)
  1. 각 타입에 타입을 구별한 단서(태그)를 만든다
  2. 조건문을 통해 각 타입의 단서로 어떤 타입인지 추론한다
  3. 해당 타입의 프로퍼티를 사용한다.
  • 서버에서 오는 응답 또는 함수의 결과가 여러갈래로 나뉠때 구별된 유니온 사용 가능

⭐instanceof
- 클래스도 타입. 객체가 어떤 클래스의 객체인지 구별할 때 사용하는 연산자
인스턴스 intanceof 클래스 로 사용

⭐typeof
- 데이터의 타입을 반환하는 연산자

⭐in
- 문자열 A in 오브젝트 : 오브젝트의 키 중에 문자열 A가 존재하는가

⭐literal type guard
- 리터럴타입: 특정 타입의 하위 타입. 구체적인 타입

⭐ 사용자 정의 함수
- type 가드에 유용한 오픈소스

Optional Chaning

접근하는 객체의 프로퍼티가 null 또는 undefined일 수 있는 optional property의 경우 if문을 사용하지 않고 넘어가게 하는 체이닝 방법
&& : false, null, undefinde, '',0,-0,NaN 값 체크
?. : null과 undefined만 체크

Nullish coalescing Operator

A??B
null, undefined를 제외한 falsy값을 그대로 리턴하고 싶은 경우 사용
기존의 A||B는 A가 falsy한 값인 경우 B 반환

Function Overloading

파라미터만 달라지고 비슷한 코드가 반복되고 있는 상황
->파라미터의 형태가 다양한 여러 케이스에 대응하는 같은 이름을 가진 함수를 만드는 것
-> 함수의 다양한 형태를 지원

	1. 선언 : 함수가 어떤 파라미터 타입들을 다룰것인지 선언
    	- 함수의 이름이 같아야 한다
        - 매개변수의 순서는 서로 같아야 한다
        - 반환 타입이 같아야 한다
    	
    2. 구현 : 각 파라미터 타입에 대응하는 구체적인 코드를 작성

type Assertion

타입스크립트가 추론하지 못하는 타입을 as keyword를 통해 명시해주는것

  • type casting : 데이터 타입을 변환
  • type assertion : 데이터 타입을 명시

Type Signature

객체의 특정 value에 접근할때 그 value의 key를 문자열로 인덱싱해 참조하는 방법
- index signature : 자바스크립트이 인덱스 시그니쳐에 대한 타입 지정
-- 객체의 프로퍼티를 명확히 알 수 없을때 사용

0개의 댓글