본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4n8ztzq
250721(월) 21일차
문법 - 인터페이스와 타입 별칭
interface - 타입을 선언하는 첫 번째 방법
interface User {
name: string;
age: number;
}
interface Admin extends User {
role: string;
}
객체의 형태를 정의하고 나중에 확장을 통해 재사용하기 좋은 구조
동일한 이름의 인터페이스를 병합할 수도 있음
type alias - 타입 별칭
type User = {
name: string;
age: number;
};
type Status = "loading" | "success" | "error";
type Response = User | null;
기본 타입을 조합하거나 유니언 타입, 튜플, 제네릭 등 보다 복합적인 타입을 다룰 때 더 유연하게 사용할 수 있음
단순 객체 구조는 interface와 비슷해보여도
복합 구조에서는 type이 훨씬 자연스러움
type APIResponse =
| { success: true; data: User }
| { success: false; error: string };
type과 interface의 공통점과 차이점
두 방식은 객체 타입을 정의한다는 점에서는 유사하지만 용도와 목적의 차이가 있다
- interface는 선언 병합, 상속, 확장성 면에서 강점
- type은 유니언, 튜플, 기본 타입 조합에 더 적합
타입과 인터페이스는 겉보기에 비슷하지만, 성격과 확장성, 사용 목적에서 미묘한 차이가 있다는 점이 중요하게 짚고 가야할 개념
둘 중 아무거나 써도 된다는 막연함에서 벗어나
앞으로는 타입을 선언할 때 코드의 목적과 구조에 따라 왜 이걸 쓰는지 설명할 수 있는 상태에서 선택할 수 있을 것 같다
또한 타입 별칭과 인터페이스를 나란히 비교하며 설명해주는 구성 덕분에 머리속에 명확하게 차이가 정리되었고
기초 개념이지만 실무에 꾸준히 영향을 미칠 내용이라 짚고 넘어갔어야 한다
나름 알고 있다고 생각했던 내용이었지만, 강의를 통해 구조적인 차이부터 실전 활용법까지 체계적으로 정리할 수 있었다.