enumToOptions

enum 타입으로 선언한 변수를 Select나 Radio 컴포넌트에서 목록으로 뿌릴 수 있도록 배열로 변경하는 함수

Copy Code

export function enumToOptions(enumObj: any) {
  return Object.entries<string>(enumObj).map(([value, name]) => ({
    value,
    name
  }))
}

Usage

enum ProgrammingLanguage {
  'Javascript' = '자바스크립트',
  'Typescript' = '타입스크립트',
  'Python' = '파이썬',
  'Node.js' = '노드js'
}
 
// Select
<select>
  <option value="">전체</option>
  {enumToOptions(ProgrammingLanguage).map((option, key) => (
    <option key={key} value={option.value}>
      {option.name}
    </option>
  ))}
</select>
 
// Radio
<div>
  {enumToOptions(ProgrammingLanguage).map((option, key) => (
    <label key={key}>
      <input type="radio" name={option.name} value={option.value} />
    </label>
  ))}
</div>