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 }

 

 

'TypeScript' 카테고리의 다른 글

TypeScript 함수  (1) 2025.04.22
TypeScript "Type" - literal type  (0) 2025.04.21
TypeScript "Type" - Union  (0) 2025.04.19
TypeScript "Type" -객체 타입과 타입 별칭(alias)  (0) 2025.04.18
TypeScript "Type" - 종류와 사용  (1) 2025.04.17