주로 interface를 사용하는데
타입 정의할 때 type도 있다고 해서
그 차이점을 확인해보려고 한다.
type은 객체 + 그 외 모든 타입
interface는 객체 구조 전용
에 사용한다.
공통점
둘 다 객체 타입 정의 가능
type A = {
name: string;
age: number;
}
interface A {
name: string;
age: number;
}
차이점
interface는 선언 병합 가능
type은 불가능
interface User {
name: string;
}
interface User {
age: number;
}
// 자동으로 합쳐짐
interface User {
name: string;
age: number;
}
type User = { name: string };
type User = { age: number }; // 에러
type은 유니온, 튜플, 리터럴 가능
interface는 불가
type Status = 'loading' | 'success' | 'error';
type ID = string | number;
type Point = [number, number];
interface 확장은 extends
type 확장은 &
interface Base {
id: string;
}
interface User extends Base {
name: string;
}
type Base = {
id: string;
};
type User = Base & {
name: string;
};
interface 쓰는 경우
- 컴포넌트 props
- API 응답 객체
- 객체 구조 위주
type 쓰는 경우
- 유니온 타입
- 상태 값
- 복잡한 조합
'궁금한 것' 카테고리의 다른 글
| import { } 유무 차이 (0) | 2025.12.26 |
|---|---|
| 해당 섹션에 도착 시 nav에 이벤트 주기 scroll spy (0) | 2025.12.25 |
| nav 클릭 시 원하는 섹션으로 스크롤 이동 Anchor Scroll (0) | 2025.12.25 |
| ::after (0) | 2025.12.23 |
| group-hover (0) | 2025.12.23 |