[TypeScript] Interface VS Type alias

cho yunsu·2021년 8월 25일
0

인터페이스는 object type literals 측면에서 타입엘리어스와 비슷하다.
인터페이스는 multiple merged declaration을 지원하지만 타입엘리어스는 그렇지 못하다.

multiple merged declaration이란 type을 중복적으로 정의했을 때 통합하는 기능..

** https://www.typescriptlang.org/docs/handbook/declaration-merging.html

the key distinction is that a type cannot be re-opened to add new properties vs an interface which is always extendable.

** 초창기 타입스크립트에서는 Type alias로 할 수 없는 게 많았지만 지금은 거의 비슷함. 다만 "통합"은 인터페이스에서만 가능.

타입 엘리어스에서만 가능한 것..
연산프로퍼티 사용.

유니온타입은 타입으로만 구현 가능. 인터페이스x


그렇다면 언제 무엇을 써야할까?? 서로 기능은 비슷하지만 개념을 생각해서 용도대로 쓰자.
무언가를 구현하는 규격사항이라면? 즉 클래스로 구현한다면 => Interface
"데이터" 타입을 정하는 거라면? 즉 데이터를 담을 목적 => Type alias

profile
Growing Developer!!

0개의 댓글