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