← Back to NOTES 🌰 ← Back to Effective TypeScript
유니온 타입의 속성을 여러 개 가지는 인터페이스보다 인터페이스의 유니온 타입을 사용하는 것이 더 정확하고 타입스크립트가 이해하기 좋다. 태그된 유니온 패턴을 사용하면 타입 체커와 제어 흐름 분석이 잘 맞아 속성 간의 관계를 명확히 모델링할 수 있다.
유니온 타입의 속성을 가지는 인터페이스를 작성 중이면, 인터페이스의 유니온 타입을 사용하는 것이 더 알맞지 않을지 검토해야 한다.
벡터 그리기 프로그램 예제
layout: 모양이 그려지는 방법과 위치 (둥근 모서리, 직선) 제어paint: 스타일 (파란선, 굵은선, 얇은선, 점선) 제어문제점: layout이 LineLayout 타입이면서 paint가 FillPaint 타입인 것은 말이 되지 않는다. 즉, 잘못된 조합이 가능하다.
각 타입의 계층을 분리된 인터페이스로 두고, 이들의 유니온으로 타입을 정의한다. 이렇게 하면 layout과 paint 속성이 잘못된 조합으로 섞이는 것을 방지할 수 있다.
장점