반응형

처음부터 이게 무슨 코드인가 싶으실 것이다.
TS를 시작하다가 갑자기 에러가 떴다.
좀 찾아보니 TS의 enum에서 인덱스로 접근이 불가능한 이유는 enum이 기본적으로 숫자 값과 문자열 값을 매핑하기 때문이라고 한다.
enum의 기본 동작에 대해 알아보자
enum을 사용할 때, 각 열거형 항목은 기본적으로 숫자 값으로 매핑된다. 예를 들면,

이렇게!
But,
TS의 enum은 숫자 값을 자동으로 부여하지만, enum의 항목에 대한 인덱스 접근은 지원하지 않는다. 즉, 첫 번째 사진처럼 Avengers [0]와 같은 방식은 작동하지 않는다. 하지만 방법은 있다! 바로 숫자 값을 통해 직접 접근할 수 있다는 것이다.

실행을 해보면 'Capt' 가 출력되는 것을 알 수 있다!
하지만 난 궁금한게 있다...
매핑이 뭘까?
매핑이란?
매핑은 일반적으로 두 개 이상의 값 사이의 관계를 설정하는 것을 의미한다.
쉽게 말하자면 매핑은 '연결'이라는 뜻이다.
- enum에서 매핑은 각 항목이 특정 숫자 값 또는 문자열 값에 연결되는 방식이다.
enum Avengers {
Capt = "Captain America",
IronMan = "Iron Man",
Thor = "Thor"
}
이 경우, 문자열 값으로 매핑되며, Avengers.Capt는 "Captain America"로 평가된다.
반응형