본문 바로가기
Typescript

230531 Typescript 타입호환성 / 대수타입 / 타입추론 / 단언 / 타입좁히기 / 서로소 유니온 타입 활용

by hyerin1201 2023. 5. 31.
  • 다양한 종류들의 타입들이 어떻게 상호 호환 가능성을 가지고 있는가
    - 타입 : 집합의 개념
    - 부모와 자식의 요소가 중요하다.

부모타입 > 자녀타입

 

자녀타입에서 부모타입 값을 할당하는 것 : 업캐스팅

부모타입에서 자녀타입 값을 할당하는 것 : 다운캐스팅 (불가능)

 

 


  • 객체타입의 상호호환

타입스크립트의 객체는 프로퍼티를 기준으로 타입을 정의!

추가적인 프로퍼티 값이 존재할 수록 서브타입으로 유형이 변경됩니다.

(심플할수록 슈퍼타입, 프로퍼티가 많을수록 까다로워지므로 서브타입)


  • 초과 프로퍼티 검사: 변수를 객체 리터럴로 초기화 할때 발동하는 타입스트립트만의 특수한 기능
    초기에 정의된 프로퍼티 외 다른 초과된 프로퍼티를 갖는 객체를 변수에 할당할 수 없도록 막는 기능.


  • 대수타입 : 여러개의 타입을 합성해서 만드는 타입
    - 합집합 타입(Union) : 모든타입을 하나로 합친다
    - 교집합 타입(Intersection) : 두타입의 공통된 요소만 사용한다.

 

  • 합집합 타입(Union)

갯수에 상관없다.
공통된 name 만의 키값으로만은 존재할 수 없다.

 

  • 교집합 타입(Intersection)

공통된 요소를 모두 포함해야한다.


  • 타입추론 : 타입스크립트는 아직 정의되지 않은 변수의 타입을 "자동"으로 추론해 줍니다.
  • 타입단언 : 특정값을 원하는 타입으로 단언 시킬때 사용하는 타입형식.

유의사항
(꼼수) * 사용하지 않는 편이 좋다.

  • 타입좁히기 : 매개변수의 범위를 유니온타입으로 지정했을때 특정 조건에 부합할때에만 해당 범위로 좁히고 싶을때

  • 서로소 유니온 타입을 합쳐서, 값을 추출하여 사용하는 방법
    *서로소 : 교집합이 없는 타입들

위 세가지 방식 모두 같은 값을 추출한다