sohyeon kim

[TS] interface VS type alias : 인터페이스와 타입 별칭의 차이점 본문

TypeScript

[TS] interface VS type alias : 인터페이스와 타입 별칭의 차이점

aotoyae 2024. 12. 16. 21:12
728x90

 

 

💡 인터페이스와 타입 별칭의 차이점을 알아보자.

 

확장성 : interface 는 확장이 가능하지만, type 은 그렇지 않다.

  • 동일한 타입에 새로운 속성을 추가해야 하는 경우 인터페이스를 사용하자.
  • 반대로 의도치 않은 확장을 막기 위해 type 을 사용하는 경우도 있다.
interface Hello{
  name: string;
}

interface Hello{
  age: number;
} // 이제 Hello 는 name 과 age 를 둘 다 포함

type Hello2{
  name: stirng;
}

type Hello2{
  age: number;
} // 불가능

 

 

복잡한 타입 표현 : type은 유니언 및 인터섹션 타입을 정의할 수 있지만, interface는 불가하다.

  • 인터페이스는 주로 객체 형태의 타입을 정의하는데에 사용된다.
  • 타입 별칭(type alias)는 객체 뿐 아니라, 유니온, 튜플, 매핑된 타입 등 복잡한 타입 표현에 유리하다.
type A = B | C

 

구현 가능성 : interface는 클래스를 통해 구현될 수 있지만, type은 불가하다.

 

➡️ 주로 객체의 형태를 정의하고 확장 가능성을 염두에 둔다면 인터페이스를 사용하고,

복잡한 타입 표현이나 유니온 타입이 필요하다면 타입 별칭을 사용하자.

 

 

 

728x90
반응형