[TS] 인터페이스 선언 합침

TIL

타입 별칭은 동일한 이름으로 중복 선언할 수 없다.

// ❌
type Person = {
  name: string;
};

type Person = {
  age: number;
};

이렇게 동일한 이름의 타입 별칭을 선언하면 오류가 발생한다.

 

반면 인터페이스는 동일한 이름으로 중복 선언이 가능하다.

따라서 위 코드에서 선언한 Person 인터페이스들은 합쳐져 다음과 같은 인터페이스가 된다.

interface Person {
    name: string;
    age: number;
}

이제 Person타입의 객체를 만들 때는 두 프로퍼티를 모두 포함해야 한다.

const person: Person = {
  name: "고견",
  age: 100,
};

 

주의할 점

동일한 이름의 프로퍼티를 서로 다른 타입으로 정의하면 충돌이 발생한다.

interface Person {
  name: string;
}

interface Person {
  name: number; // ❌ 충돌
  age: number;
}

 

선언 합침에서 이런 충돌은 허용하지 않기 때문에 같은 프로퍼티는 반드시 동일한 타입으로 정의해야 한다.

interface Person {
  name: string;
}

interface Person {
  name: string; // ✅ 같은 타입
  age: number;
}

'TIL' 카테고리의 다른 글

[TS] 접근 제어자  (0) 2025.11.01
[TS] 클래스  (0) 2025.11.01
[TS] 인터페이스 확장  (0) 2025.11.01
[TS] 인터페이스  (0) 2025.11.01
[TS] 사용자 정의 타입 가드  (0) 2025.11.01
'TIL' 카테고리의 다른 글
  • [TS] 접근 제어자
  • [TS] 클래스
  • [TS] 인터페이스 확장
  • [TS] 인터페이스
고견
고견
개발 자국 남기기
  • 고견
    개발자국
    고견
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Frontend (29)
        • Next.js (16)
        • JavaScript (7)
      • CS (19) N
        • 자료구조 (9)
        • 알고리즘 (5)
        • 운영체제 (4) N
        • 네트워크 (1) N
      • TIL (93)
      • Dev Log (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    인터페이스
    제네릭
    자료구조
    함수 타입
    페이지 라우터
    generic
    문자열
    typescript
    cs50
    배열
    트러블 슈팅
    memory
    ai 감성 일기장
    useState
    App Router
    javascript
    Next.js
    Spa
    algorithm
    C
    Trouble Shooting
    react
    바닐라 자바스크립트
    클래스
    앱 라우터
    알고리즘
    타입 좁히기
    CS
    emotion diary
    Pages Router
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고견
[TS] 인터페이스 선언 합침
상단으로

티스토리툴바