별칭(Type aliases)은 특정 타입에 새로운 이름을 붙이는 기능으로, 복잡한 타입이나 재사용할 타입에 대해 간단한 이름을 부여하는 기능입니다. 이를 통해 코드의 가독성을 높이고 유지보수를 쉽게 할 수 있습니다.
type Status = "success" | "error" | "loading"; // Union type
type AddFunction = (a: number, b: number) => number; // 함수 type
//복잡한 타입
type User = {
id: UserID;
name: string;
age?: number; // 선택적 프로퍼티
};
// 제네릭 타입
type Response<T> = {
data: T;
status: number;
};
const currentStatus: Status = "loading";
const add: AddFunction = (a, b) => a + b;
const user: User = {
id: "abc123",
name: "Alice"
};
const response: Response<string> = {
data: "Hello, World!",
status: 200
};
Type Aliases VS Inferfaces
별칭(Type Aliases)은 interfaces처럼 사용할 수 있습니다. 하지만 두개는 서로 차이가 존재합니다.인터페이스는 새로운 속성을 추가하거나 확장할 수 있지만, 별칭은 한 번 정의하면 나중에 변경하거나 확장할 수 없습니다.
- 별칭(type): 타입을 재사용하고 결합할 때 사용.
- 인터페이스(interface): 객체 구조를 정의하고 확장할 때 주로 사용.
interface 사용 예제
interface Person { name: string; } // 나중에 속성을 추가 가능 interface Person { age: number; } /* ------------ */ // Person 사용 const person: Person = { name: "Alice", age: 25, };
type 사용 예제
type Person = { name: string; }; // 에러 발생 // Duplicate identifier 'Person'.(2300) type Person = { age: number; };
타입스크립트 교과서 (조현영 지음) 타입스크립트 교과서 구매링크