# 열거형(Enum) 사용하기

## Content

여러 Wijmo 5 컨트롤에는 열거형 값을 사용하는 속성이 있습니다.

예를 들어 **FlexChart**의 **chartType** 속성은 **wijmo.chart.ChartType** 값을 사용합니다.

## 열거 속성 설정하기

열거 속성을 설정하는 권장 방법은 다음과 같습니다:

```javascript
import { ChartType } from "@mescius/wijmo.chart";

// 열거형 속성의 값 설정
chart.chartType = ChartType.Line;
```

아래와 같이 사용하셔도 동일한 결과를 산출합니다:

```javascript
// wijmo.chart.ChartType.Line은 값이 3입니다.
chart.chartType = 3;

// 열거형은 자동으로 구문 분석됩니다.
chart.chartType = "Line";
```

## 열거 속성 가져오기

속성값은 3을 반환합니다. 값을 문자열 (예 : UI에 표시)로 가져 오려면 다음과 같이 할 수 있습니다:

```javascript
//열거 된 값을 숫자로 가져오기.
console.log(chart.chartType); // outputs "3"

// 열거 된 값을 문자열로 가져오기
console.log(
  ChartTypeChartTypeChartTypeChartType\[
    chart.chartTypechartTypechartTypechartType\
  ]
); // 산출물은 "Line"
```

## 열거형 값 변환

열거 클래스를 사용하여 인덱싱하여 문자열과 해당 숫자 사이를 변환 할 수 있습니다. 예 :

```javascript
// 열거 형 값을 문자열로 변환
console.log(ChartType\[3\]); // 산출물은 "Line"
console.log(ChartType\[1000\]); // 산출물은 "null"

// 문자열을 열거 형 값으로 변환
console.log(ChartType\['Line'\]); // 산출물은 "3"
console.log(ChartType\['NoSuchValue'\]); // 산출물은 "null"
```

## .NET 개발자를 위한 참고 사항

.NET, **Enum** 클래스는 모든 열거형에서 정의한 이름과 값을 반환하는 [GetNames](https://docs.microsoft.com/en-us/dotnet/api/system.enum.getnames?redirectedfrom=MSDN&view=netcore-3.1#System_Enum_GetNames_System_Type_) 및 [GetValues](https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?redirectedfrom=MSDN&view=netcore-3.1#System_Enum_GetValues_System_Type_) 라는 메서드를 제공합니다.

아래 코드는 유사한 메서드를 구현하여 TypeScript 열거형으로 정의된 이름과 값을 얻는 방법을 보여줍니다 (Wijmo에서 사용됨):

```javascript
import { DataType } from "@mescius/wijmo";
//열거형으로 정의 된 이름을 얻는다.
function getEnumNames(enumClass) {
  var names = \[\];
  for (var key in enumClass) {
    var val = parseInt(key);
    if (isNaN(val)) names.push(key);
  }
  return names;
}

// 열거형으로 정의 된 값을 얻는다.
function getEnumValues(enumClass) {
  var values = \[\];
  for (var key in enumClass) {
    var val = parseInt(key);
    if (!isNaN(val)) values.push(val);
  }
  return values;
}

// 샘플 사용법:
var nn = getEnumNames(DataType); // returns \[ 'Object', 'String', 'Number', 'Boolean', 'Array' \]
var vv = getEnumValues(DataType); // returns \[ 0, 1, 2, 3, 4 \]
```