[[Union]] 으로 새로운 타입을 생성할 수 있는데, 구분자로 집합의 요소가 구분되는 집합을 Discriminated Union이라고 한다.
```typescript
export type Event =
| {
type: "click";
event: MouseEvent;
}
| {
type: "focus";
event: FocusEvent;
}
| {
type: "keydown";
event: KeyboardEvent;
};
```
위의 `Event` 타입에서 구분자는 `type` 이다. `type`은 string이고, `event` 타입은 각각 다른데 이렇게 Discriminated Union 에서는 구분자를 제외한 나머지 필드는 다른 데이터 형식(heterogeneous)여도 상관없다.
---
참조 강의: https://inf.run/FVDi