타입스크립트에서 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`은 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
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.