TS) 인터페이스와 타입의 차이점

인터페이스와 유형은 TypeScript에서 유형을 정의하는 두 가지 방법입니다. 둘 다 개체, 함수, 클래스 등을 포함한 모든 유형을 정의할 수 있습니다. 그러나 두 메서드 간에는 몇 가지 차이점이 있습니다.

  • Interface는 주로 객체의 구조를 정의하는 데 사용되며 Type은 주로 유형(별칭)을 정의하는 데 사용됩니다.

  • 인터페이스는 확장할 수 있지만 유형은 확장할 수 없습니다.

  • 인터페이스를 사용하면 선언을 병합할 수 있습니다. 즉, 동일한 이름으로 인터페이스를 여러 번 선언할 수 있으며 TypeScript가 자동으로 병합합니다. 유형을 결합할 수 없습니다.

  • 인터페이스는 유사한 구조를 공유하는 다른 인터페이스와 함께 사용할 때 유용합니다. 유형은 복잡한 유형 조합이 필요할 때 유용합니다.

다음은 인터페이스 및 유형의 예입니다.

// interface를 사용한 예시
interface Person {
  name: string;
  age: number;
}

const person: Person = { name: 'John', age: 30 };

// type을 사용한 예시
type Point = (number, number);

const point: Point = (10, 20);

위의 예에서 Person은 인터페이스를 사용하여 객체의 구조를 정의하고 Point는 유형을 사용하여 해당 유형을 정의합니다.