웹개발/TypeScript
TypeScript "Type" - Intersection
bergerac
2025. 4. 20. 09:11
📌 인터섹션 타입이란?
여러타입을 결합해 만들어진 단일 타입. 말 그대로 타입 간의 교집합을 구현한 것이라 생각하면 됨
- 여러 타입을 모두 만족해야 하므로 And 연산자(&)와 비슷한 개념입니다.
- 새로운 타입이 결합된 타입의 모든 속성과 기능을 포함합니다.
type 타입별칭 = Type1 & Type2 & Type3;
<예제 : 직원(Employee)+관리자(Manager)>
type Employee = {
name: string;
startDate: Date;
}
type Manager = Employee & {
group: string;
}
let managerA: Manager = {
name: 'bergerac',
startDate: new Date(),
group: '개발 부서'
}
✅ 특징 정리
- 타입의 결합: 여러 타입을 하나로 묶어 더 복잡하고 정교한 타입을 만들 수 있음
- 재사용성 증가: 기존 타입을 그대로 활용하면서 필요한 속성만 덧붙일 수 있음
- 유연한 조합: 다른 객체 타입 간의 유연한 조합이 가능
<예제: 관리사용자(AdminUser)>
type Admin = {
isAdmin: boolean;
}
type User = {
id: string;
password: string;
}
type AdminUser = Admin & User;
function createAdminUser(user: User): AdminUser {
return { ...user, isAdmin: true };
}
let newAdminUser: User = {
id: 'qwe123',
password: 'qweqwe123123'
}
let adminUser1 = createAdminUser(newAdminUser);
console.log(adminUser1);
// 출력 결과:
// { id: 'qwe123', password: 'qweqwe123123', isAdmin: true }