한 입 크기로 잘라먹는 타입스크립트 - 타입은 집합이다
집합 : 동일한 속성을 갖는 여러개의 원소 또는 요소들을 하나로 묶어둔 단위.
ex) number Type 이라는 집합
number Literal Type
예시)
let num: 20 = 20; // num 변수는 20 이라는 값밖에 담을 수 없다.
위 예시를 집합으로 표현하면, 20 이라는 원소 하나만 포함하는 아주 작은 단위의 집합이다.
여기서 20은 숫자로 number Type 에도 속하므로, number Literal Type 집합은 모두 number Type 의 부분집합 이다.
number Literal Type 이 포함하는 값들은 전부 number Type 집합에도 포함되는 값들이기 때문이다.
여기서 number Type 처럼 다른 타입을 포함하는 타입을 슈퍼타입(부모타입) 이라고 부르고, number Literal Type 처럼 다른 타입에 포함되는 타입을 서브타입(자식타입) 이라고 부른다.
타입스크립트가 말하는 타입이라는건 결국 값들을 포함하고 있는 집합이며, 때문에 서로 부모 자식 관계를 맺게 되어 모든 타입들의 관계를 놓고 보면 타입계층도를 만들어서 표현할 수 있다.
타입 호환성 : 어떤 타입을 다른 타입으로 취급해도 괜찮은지 판단하는 것.
Number 리터럴 타입을 Number 타입으로 취급하는 건 가능하다.
Number 타입을 Number 리터럴 타입으로 취급하는 건 허용되지 않는다.
왜냐하면, Number 타입이 Number 리터럴 타입보다 더 큰 집합이기 때문이다.
타입 호환성)
let num1: number = 10;
let num2: 10 = 10;
num1 = num2; // 가능 : Number 리터럴 타입이 Number 타입 변수값 초기화 가능
num2 = num1; // 불가능 : Number 타입이 Number 리터럴 타입 변수값 초기화 불가능
즉, 서브타입 값을 슈퍼타입으로 취급하는건 괜찮으나, 슈퍼타입 값을 서브타입으로 취급하는건 안된다.
업 캐스팅 : 서브타입의 값을 슈퍼타입으로 취급 (모든 상황에 가능)
다운 캐스팅 : 슈퍼타입의 값을 서브타입으로 취급 (대부분의 상황에 X)
참고링크 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#
한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런
이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻♀️로 만들어드립니다., 프론
www.inflearn.com
'강의 실습 > 한 입 크기로 잘라먹는 타입스크립트(TypeScript)' 카테고리의 다른 글
객체 타입의 호환성 (0) | 2024.08.06 |
---|---|
타입 계층도와 함께 기본타입 살펴보기 (1) | 2024.08.05 |
타입스크립트 이해하기 (0) | 2024.07.30 |
Void와 Never 타입 (0) | 2024.07.29 |
Any와 Unknown (1) | 2024.07.28 |
댓글