Discriminated Union: Typescript에서 타입을 유연하게 확장하는 방법
시작하며타입스크립트를 사용하다 보면 하나의 타입에 여러 가지 객체가 추가되며, 특정 경우를 제외하고는 항상 undefined 이거나 값이 존재하는 경우가 있습니다. 예를 들어, 아래와 같이 Vehicle이라는 타입이 있을 때 해당 타입으로 차나 오토바이를 만들 수 있다고 가정해 보겠습니다.type Vehicle = { type: 'motorbike' | 'car'; make: string; model: string; fuel: 'petrol' | 'diesel'; doors?: number; bootSize?: number;};하지만 위 코드로는 doors가 3개인 오토바이와 같이 실제로 존재할 수 없는 객체를 만들 수도 있습니다. 이때 오토바이라면 doors나 bootSize와 같은 프로퍼티..