Type과 Interface의 차이점

oversleep·2025년 1월 20일

Type과 Interface는 TypeScript에서 타입을 정의하는 데 사용되는 방법.

  1. Type:

    • 구조적인 타입:

      Type은 주로 기존 타입을 결합하거나 새로운 타입을 만들 때 사용됨.

      기존 타입을 조합하여 새로운 타입을 정의할 수 있으며, 복잡한 타입을 만들기에 유용함.

    • Union, Intersection, Alias 등의 지원:

      Type은 유니언 타입, 교차 타입, 타입 별칭 등 다양한 기능을 제공함.

    • Primitives, Objects, Functions 등 모든 유형을 지원:

      모든 종류의 타입을 만들고 조합할 수 있음.

    • 확장 불가능:

      이미 존재하는 타입을 확장하는 것은 불가능함.

  2. Interface:

    • 명시적인 타입:

      Interface는 주로 객체의 구조를 설명하고 각 멤버의 타입을 명시할 때 사용.

      코드를 읽기 쉽게 만들고, 개발자들이 객체의 형태를 이해하기 쉽게 함.

    • 선언 병합(Declaration Merging) 지원:

      Interface는 여러 곳에서 동일한 이름의 인터페이스를 선언하여 합칠 수 있음.

    • 구조적인 타입 체크 미지원:

      Interface는 구조적으로 타입을 체크하지 않기 때문에 선언된 형태가 일치해야 함.

    • 확장 가능:

      다른 인터페이스나 클래스를 확장하여 새로운 인터페이스를 만들 수 있음.

일반적으로, Type은 주로 복잡한 타입을 정의하고 조합할 때 사용되며,

Interface는 주로 객체의 형태를 정의하고 명시할 때 사용됨.

그러나 두 가지 모두 다양한 상황에 따라 선택하여 사용할 수 있음.

profile
궁금한 것, 했던 것, 시행착오 그리고 기억하고 싶은 것들을 기록합니다.

0개의 댓글