Type & Interface

훈이는못말려·2023년 7월 21일
0
post-thumbnail

typeinterface는 매우 유사하다. interface가 가지는 대부분의 기능은 type에서도 동일하게 사용 가능하다. 이 둘의 가장 핵심적인 차이는 확장성이다.

확장

interface 확장하기type 확장하기
extends를 이용해 인터페이스 뿐만 아니라 타입도 상속 가능하다.

새 필드 추가

interface 새 필드 추가type 새 필드 추가
타입은 생성된 뒤에는 달라질 수 없다.

Primitive Type

Primitive Type (원시타입)
기본적으로 제공되는 간단하고 기본적인 데이터 타입. 다른 데이터 타입을 구성하는 기본 단위로, 보통 메모리 상에 고정된 크기로 저장된다.
boolean number string null undefined symbol bigint any void

interface는 오직 객체의 모양을 선언하는 데에만 사용되며, 기존의 원시 타입에 별칭을 부여하는 데에는 사용할 수는 없다.


결론

  • 확장 측면에 따라 사용도가 달라진다. 확장이 불가능한 타입을 선언하려면 type을 사용하면 되고, 확장이 가능한 타입을 선언하려면 선언 병합이 가능한 interface를 사용하면 된다.
  • 공식문서에서는 무엇을 사용할지 잘 모르겠다면 우선 interface를 사용하라고 한다.
  • 프로젝트 전반에서 type을 쓸지 interface를 쓸지 통일하는게 좋다.




참고
https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces

0개의 댓글