Home
All Posts
✌🏻

타입을 정의할 때 type과 interface 두 가지 방법 차이

Created
2024/04/10
Category
Knowledge
3 more properties

type 키워드를 사용하는 방법

type은 주로 유니온(합집합) 타입을 정의할 때 사용된다. 또한 type은 새로운 속성을 추가하기 위해 기존의 타입을 확장할 수 없으므로, 일반적으로 더 제한적이다. 그러나 type은 객체 뿐만 아니라 모든 종류의 타입(원시, 유니온, 튜플 등)을 정의할 수 있다.
export type MainPageProps = { participants: string[]; };
TypeScript
복사

interface 키워드를 사용하는 방법

interface는 객체의 형태를 정의하는 데에 자주 사용되며, 확장이 가능하다. 즉, 같은 이름의 interface를 여러 번 선언하여 속성을 추가할 수 있으며, TypeScript는 이를 자동으로 합쳐준다. 이는 객체 지향 프로그래밍에서의 인터페이스와 비슷한 개념이다.
interface MainPageProps { participants: string[]; }
TypeScript
복사

두 방법의 차이점

출처: https://stackoverflow.com/questions/37233735/interfaces-vs-types-in-typescript
방법의 주요 차이점은 확장 가능성에 있다. interface는 확장이 가능하기 때문에 객체 타입을 정의하고 이를 여러 곳에서 확장해야 할 경우 유용하다. 반면, type은 더 복잡한 타입 조합이나 유니온 타입을 정의할 때 더 유리할 수 있다.
실제 사용에서는 특정 상황에 맞게 둘 중 하나를 선택하게 된다. 객체 타입을 정의하고 확장할 가능성이 있는 경우 interface를, 조건부 타입이나 유니온 타입 등 더 복잡한 타입을 정의할 때는 type선호하는 경향이 있다.