[Typescript] 타입 호환성, 업/다운 캐스팅

정혜인·2023년 8월 14일

typescript

목록 보기
12/15

타입 == 집합 ❓

타입은 집합이다!!!
타입스크립트의 '타입'은 사실 여러개의 값을 포함하는 '집합'이다. (집합 : 동일한 속성을 갖는 여러 개의 요소들을 하나의 그룹으로 묶은 단위)

아래 사진처럼 여러개의 숫자 값들을 묶어놓은 집합 -> number 타입이라고 정의

✅ 슈퍼타입, 서브타입

슈퍼타입(부모타입) : 다른 타입을 포함하는 더 큰 타입
서브타입(자식타입) : 다른 타입에 포함되고 있는 작은 타입

아래 사진은 number 타입과 number literal 타입의 관계이다.

⭐️ typescript에서 타입들 간의 관계

타입 호환성

: 어떤 타입을 다른 타입으로 취급해도 괜찮은지 판단하는 것

아래 사진처럼 Number 타입과 Number Literal 타입이 있을 때 서브 타입인 Number Literal 타입의 값을 슈퍼 타입인 Number 타입의 값으로 취급하는 것은 가능하지만 반대로는 불가능하다.

let num1: number = 10;
let num2: 10 = 10;

num1 = num2; //가능 (업 캐스팅)
let num1: number = 10;
let num2: 10 = 10;

num2 = num1; //불가능 (다운 캐스팅)

Down/Up Casting

업 캐스팅 : 서브 타입의 값을 슈퍼 타입의 값으로 취급하는 것 (대부분 가능)
다운 캐스팅 : 슈퍼 타입의 값을 서브 타입의 값으로 취급하는 것 (대부분 불가능)

1개의 댓글

comment-user-thumbnail
2023년 8월 14일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기