타입 별칭은 동일한 이름으로 중복 선언할 수 없다.
// ❌
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 |
