[typescript] 타입 별칭과 인터페이스를 사용하여 intersection 타입 정의하기

TypeScript에서 intersection(교차) 타입은 다른 타입들을 결합하여 새로운 타입을 만드는 데 사용됩니다. 이 기능을 사용하면 기존 타입들을 조합하여 필요한 형태의 새로운 타입을 만들 수 있습니다.

타입 별칭 (Type Alias)

먼저, 타입 별칭을 사용하여 두 개 이상의 타입을 교차시킬 수 있습니다. 예를 들어, 다음과 같이 PersonEmployee 타입을 교차하여 Personnel 타입을 만들어 볼 수 있습니다.

type Person = {
  name: string;
  age: number;
};

type Employee = {
  employeeId: number;
  department: string;
};

type Personnel = Person & Employee;

위의 예제에서 Personnel 타입은 PersonEmployee의 속성을 모두 포함하게 됩니다.

인터페이스 (Interfaces)

또 다른 방법은 인터페이스를 사용하여 intersection 타입을 정의하는 것입니다. 위의 예제를 인터페이스로 다시 작성해보겠습니다.

interface Person {
  name: string;
  age: number;
}

interface Employee {
  employeeId: number;
  department: string;
}

type Personnel = Person & Employee;

여기서 Personnel 타입은 여전히 PersonEmployee의 속성을 교차시킨 새로운 타입을 나타내게 됩니다.

결론

TypeScript에서 타입 별칭과 인터페이스를 활용하여 교차 타입을 정의할 수 있습니다. 이를 통해 코드의 가독성과 재사용성을 높일 수 있으며, 복잡한 타입을 간결하게 정의할 수 있습니다.