[Typescript] 타입은 집합이다 - 타입 호환성

Narcoker·2025년 5월 12일

Typescript

목록 보기
6/15

타입은 집합이다

타입스크립트의 "타입"은 여러 개의 값을 포함하는 "집합" 이다.

위 그림처럼 여러개의 숫자 값을 묶어놓은 집합을 number 타입이라고 한다.

타입 호환성

리터럴 타입

오직 하나의 값만 포함하는 타입을 말한다.

예를 들어 Number Literal 타입은 값 20 만을 집합으로 함을 의미한다.
즉, 20만을 값으로 취급한다.

이 20이라는 타입에 속하는 요소인 20은 Number 타입에도 속할 수 있다.
다시 말해 Number Literal 타입은 Number 타입에 속한다.

타입 호환성

타입 호환성이란 A타입의 값을 B 타입으로 취급해도 괜찮은지 판단하는 것을 말한다.

이처럼 타입스트립트에서의 타입은 계층 관계를 가진다.

이는 마치 정사각형과 직사각형의 관계와 비슷하다.
정사각형은 직사각형이 될 수 있지만 직사각형은 정사각형이 될 수 없다.

업 캐스팅 은 허용한다.

서브타입(Number Literal)의 값을 슈퍼타입(Number)의 값으로 할당하는 것

다운캐스팅 은 허용하지 않는다.

슈퍼타입(Number)의 값을 서브타입(Number Literal)의 값으로 할당하는 것

단 any 타입은 never 타입을 제외하고 업 캐스팅다운 캐스팅 모두 지원한다.

출처

인프런 - 한 입 크기로 잘라먹는 타입스크립트

profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글