
type과 interface는 매우 유사하다. interface가 가지는 대부분의 기능은 type에서도 동일하게 사용 가능하다. 이 둘의 가장 핵심적인 차이는 확장성이다.
| interface 확장하기 | type 확장하기 |
|---|---|
![]() | ![]() |
| extends를 이용해 인터페이스 뿐만 아니라 타입도 상속 가능하다. |
| interface 새 필드 추가 | type 새 필드 추가 |
|---|---|
![]() | ![]() |
| 타입은 생성된 뒤에는 달라질 수 없다. |
Primitive Type (원시타입)
기본적으로 제공되는 간단하고 기본적인 데이터 타입. 다른 데이터 타입을 구성하는 기본 단위로, 보통 메모리 상에 고정된 크기로 저장된다.
booleannumberstringnullundefinedsymbolbigintanyvoid
interface는 오직 객체의 모양을 선언하는 데에만 사용되며, 기존의 원시 타입에 별칭을 부여하는 데에는 사용할 수는 없다.

type을 사용하면 되고, 확장이 가능한 타입을 선언하려면 선언 병합이 가능한 interface를 사용하면 된다. interface를 사용하라고 한다.type을 쓸지 interface를 쓸지 통일하는게 좋다.