# 타입스크립트 이해하기

> 타입은 집합이다.

![](https://2796616948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKGg8bxDKezkA5Zl0mEec%2Fuploads%2Fgit-blob-3c39eb177da85dadbfe92ca2f873d6b776b44f0c%2F%ED%83%80%EC%9E%85%EA%B3%84%EC%B8%B5%EB%8F%84.png?alt=media)

![](https://2796616948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKGg8bxDKezkA5Zl0mEec%2Fuploads%2Fgit-blob-d919ed23f8fb34de3725d82118b014673894e0d9%2Fsuper_sub_type.avif?alt=media)

* numberType(부모타입, 슈퍼타입)
* numberliteralType(자식 타입, 서브 타입)

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

## 타입 호환성

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