여러 interface 타입을 조건별로 하나의 타입 안에서 정의하고 싶을 때
export enum SearchType {
  FRUIT = ‘FRUIT’,
  FOOD = ‘FOOD’,
  CLOTHES = ‘CLOTHES’,
  SHOES = ‘SHOES’,
  BAGS = ‘BAGS’,
}

type TypeName<T> = T extends SearchType.FRUIT
  ? FruitItem
  : T extends SearchType.FOOD
  ? FoodItem
  : T extends SearchType.CLOTHES
  ? ClothesItem
  : T extends SearchType.SHOES
  ? ShoesItem
  : BagsItem;


+ Recent posts