← Back to NOTES 🌰 ← Back to Effective TypeScript

← 아이템 31 - 타입 주변에 null 값 배치하기

핵심 요약

유니온 타입의 속성을 여러 개 가지는 인터페이스보다 인터페이스의 유니온 타입을 사용하는 것이 더 정확하고 타입스크립트가 이해하기 좋다. 태그된 유니온 패턴을 사용하면 타입 체커와 제어 흐름 분석이 잘 맞아 속성 간의 관계를 명확히 모델링할 수 있다.

자세한 내용

유니온 타입 속성의 문제점

유니온 타입의 속성을 가지는 인터페이스를 작성 중이면, 인터페이스의 유니온 타입을 사용하는 것이 더 알맞지 않을지 검토해야 한다.

벡터 그리기 프로그램 예제

문제점: layoutLineLayout 타입이면서 paintFillPaint 타입인 것은 말이 되지 않는다. 즉, 잘못된 조합이 가능하다.

해결 방법: 인터페이스의 유니온

각 타입의 계층을 분리된 인터페이스로 두고, 이들의 유니온으로 타입을 정의한다. 이렇게 하면 layoutpaint 속성이 잘못된 조합으로 섞이는 것을 방지할 수 있다.

태그된 유니온 (Tagged Union)

장점