2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

타입스크립트에서 enum은 어떻게 사용하나요?

_____
Q1: 타입스크립트에서 enum이란 무엇인가요?
A1: enum은 열거형으로, 관련된 상수들의 집합을 이름으로 묶어서 관리할 수 있는 타입입니다. 코드의 가독성과 유지보수성을 높여 주며, 숫자형, 문자열형 등의 값을 가질 수 있습니다.

Q2: enum을 어떻게 정의하나요?
A2: 다음과 같이 `enum` 키워드를 사용해 정의합니다.

```typescript
enum Direction {
Up,
Down,
Left,
Right,
}
```

기본적으로 0부터 시작하는 숫자형 값이 자동 할당됩니다.

Q3: enum 멤버에 숫자 값을 직접 할당할 수 있나요?
A3: 네, 가능합니다.

```typescript
enum Direction {
Up = 1,
Down = 2,
Left = 3,
Right = 4,
}
```

이렇게 지정하면 각 멤버가 명시된 숫자 값을 갖게 됩니다.

Q4: 문자열 enum은 어떻게 정의하나요?
A4: 멤버에 문자열 값을 할당하면 문자열 enum이 됩니다.

```typescript
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
```

문자열 enum은 자동 증가 기능이 없고, 각 값을 직접 할당해야 합니다.

Q5: enum 값을 어떻게 사용하나요?
A5: enum 이름과 멤버 이름을 사용해서 접근합니다.

```typescript
let dir: Direction = Direction.Up;
console.log(dir); // 숫자형 enum이면 숫자 출력, 문자열 enum이면 문자열 출력
```

Q6: enum의 역방향 매핑이란 무엇인가요?
A6: 숫자형 enum의 경우, 멤버 이름으로 값에 접근할 수 있을 뿐 아니라 값으로부터 이름을 얻을 수도 있습니다.

```typescript
enum Direction {
Up = 1,
Down,
Left,
Right,
}

console.log(Direction.Up); // 1
console.log(Direction[1]); // "Up"
```

문자열 enum에서는 역방향 매핑이 지원되지 않습니다.

Q7: enum 값을 타입으로 사용할 수 있나요?
A7: 네, enum 자체가 타입 역할을 하므로 변수 선언에 활용할 수 있습니다.

```typescript
enum Status {
Ready,
Waiting,
}

let s: Status = Status.Ready;
```

Q8: 어떤 경우에 enum 사용이 특히 유용한가요?
A8: 관련된 상수 집합을 의미있는 이름으로 묶어서 코드 가독성을 높이고, 실수를 줄이고자 할 때 유용합니다. 예를 들어 상태 코드, 방향, 옵션 목록 등에서 사용합니다.

Q9: enum 대신 union 타입이나 const object를 사용해도 되나요?
A9: 네, 유니언 타입(`type Direction = "Up" | "Down" | "Left" | "Right"`)이나 `const` 객체를 사용하는 대안도 많으며, 상황에 따라 더 간결하거나 타입 추론에 유리할 수 있습니다.

Q10: enum에 중복된 값을 허용하나요?
A10: 숫자형 enum에서는 중복 값 할당이 가능하지만, 이름이 중복되면 안 됩니다.

```typescript
enum Example {
A = 1,
B = 1,
}
```

이는 가능하지만 B와 A가 같은 값을 가져 주의해야 합니다.

---

요약: 타입스크립트 enum은 관련된 상수들을 그룹화하는 타입이며, 숫자형과 문자열형 enum이 있습니다. 멤버값 할당, 역방향 매핑(숫자형), 타입 지정 등에 활용하며 가독성과 타입 안전성을 높이는 역할을 합니다.
TypeScript에서 `enum`은 열거형을 정의하는 데 사용되는 특별한 데이터 타입입니다.

열거형은 관련된 상수 집합을 정의하고, 코드의 가독성을 높이며, 상수 값을 의미 있는 이름으로 그룹화할 수 있게 해줍니다.

TypeScript의 `enum`은 JavaScript로 컴파일될 때 객체 형태로 변환되므로, 런타임에서도 사용할 수 있습니다.

기본 사용법 TypeScript에서 `enum`을 정의하는 기본적인 방법은 다음과 같습니다: ```typescript enum Direction { Up, Down, Left, Right } ``` 위의 예제에서 `Direction`이라는 이름의 열거형을 정의했습니다.

이 열거형은 `Up`, `Down`, `Left`, `Right`라는 네 개의 상수를 포함합니다.

기본적으로 열거형의 각 멤버는 0부터 시작하는 숫자 값을 가집니다.

따라서 `Direction.Up`은 0, `Direction.Down`은 1, `Direction.Left`는 2, `Direction.Right`는 3의 값을 가집니다.

수동으로 값 설정하기 열거형의 각 멤버에 대해 수동으로 값을 설정할 수도 있습니다: ```typescript enum Direction { Up = 1, Down = 2, Left = 3, Right = 4 } ``` 이 경우, 각 방향에 대해 명시적으로 값을 지정했습니다.

이 방법은 값의 의미를 명확하게 하거나 특정한 값이 필요할 때 유용합니다.

문자열 열거형 TypeScript에서는 문자열 값을 가지는 열거형도 지원합니다.

문자열 열거형은 각 멤버가 문자열 값을 가지며, 값이 명확하게 식별될 수 있도록 합니다: ```typescript enum Response { Yes = "YES", No = "NO", Maybe = "MAYBE" } ``` 이 경우, `Response.Yes`는 `"YES"`라는 문자열 값을 가집니다.

문자열 열거형은 디버깅 시 더 많은 정보를 제공하고, 코드의 가독성을 높이는 데 도움이 됩니다.

계산된 값 열거형의 멤버는 계산된 값도 가질 수 있습니다.

예를 들어, 다른 열거형의 값이나 수식을 사용하여 값을 설정할 수 있습니다: ```typescript enum MathConstants { Pi =

3.14, E = Math.E } ``` 이 예제에서 `MathConstants.E`는 JavaScript의 `Math.E` 값을 사용하여 설정됩니다.

열거형 사용하기 열거형을 사용하려면 다음과 같이 참조할 수 있습니다: ```typescript let direction: Direction = Direction.Up; if (direction === Direction.Up) { console.log("Moving Up!"); } ``` 이렇게 하면 `direction` 변수가 `Direction.Up`과 같은지 비교할 수 있습니다.

열거형의 유용성 1. 가독성 : 열거형을 사용하면 코드의 의미가 명확해집니다.

상수 값 대신 의미 있는 이름을 사용함으로써 코드의 가독성을 높일 수 있습니다.



2. 타입 안전성 : 열거형을 사용하면 특정 값만 허용되므로, 잘못된 값이 할당되는 것을 방지할 수 있습니다.



3. 자동 완성 : IDE에서 열거형 멤버에 대한 자동 완성을 제공하므로, 개발자가 실수로 잘못된 값을 입력하는 것을 줄일 수 있습니다.

결론 TypeScript의 `enum`은 상수 집합을 정의하고, 코드의 가독성을 높이며, 타입 안전성을 제공하는 유용한 기능입니다.

기본 열거형, 문자열 열거형, 계산된 값 등을 활용하여 다양한 상황에서 사용할 수 있습니다.

열거형을 적절히 활용하면 코드의 유지 보수성과 가독성을 크게 향상시킬 수 있습니다.

작성자: 이준수 [비회원] | 작성일자: 1년 전 2024-09-10 05:32:08
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.