Type Alias vs Interface

이연중·2021년 9월 27일
0

TypeScript

목록 보기
2/4
post-custom-banner

타입스크립트의 Type Alias와 Interface의 공통점과 차이점을 중심으로 상황에 따라 맞는 것을 사용한다.

공통점


Type Alias와 Interface는 객체의 타입의 이름을 지정하는 방법이다.

차이점

Interface


  • 인터페이스는 주로 클래스 속성들을 추상화하거나, 객체의 타입을 지정하는데 많이 쓰인다.
  • extends나 implements 사용가능
  • 선언 병합 가능(같은 이름의 인터페이스가 합쳐짐)
  • computed value 사용불가
	   type pet= 'cat' | 'dog'
       
       //error
	   interface PetInterface{
	   	[key in pet]: string
 	   }

Type Alias


  • Type Alias는 객체뿐만아니라 원시값, 유니온, 튜플 등을 타입으로 지정할 수 있다.
  • extends나 implements 사용불가(&로 확장)
  • 선언 병합 불가
  • computed value 사용가능
	   type pet= 'cat' | 'dog'
       
	   type PetType{
	   	[key in pet]: string
 	   }

선택


객체의 타입을 정의, 상속을 통한 확장이 필요, 타입 간 합성의 성능이 중요한 경우에는 Interface를 사용하고

인터페이스로는 표현할 수 없는 원시, 유니온, 튜플 타입의 정의하는 경우에는 Type Alias를 사용하는 것이 좋다.

참고

https://yceffort.kr/2021/03/typescript-interface-vs-type
https://typescript-kr.github.io/pages/advanced-types.html#%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-vs-%ED%83%80%EC%9E%85-%EB%B3%84%EC%B9%AD-interfaces-vs-type-aliases
https://poiemaweb.com/typescript-alias

profile
Always's Archives
post-custom-banner

0개의 댓글