enum 정의
// enum enum Fruit { Apple, // 0 // enum 원소의 값을 명시하지 않으면 0부터 +1로 증가하며 index로 값이 할당된다 Banana = 5, //5 : enum 원소의 값을 명시적으로 넣어줄 수 있다. Orange // 6 : enum 원소의 값을 명시하지 않으면 이전 값 +1이 할당된다. }
enum을 변수의 값으로 사용
//enum을 값으로 사용 const v1: Fruit = Fruit.Orange; console.log(v1); // 6
enum을 타입으로 사용
//enum을 타입으로 사용 // 타입을 Fruit으로 줌으로써 Fruit의 원소들로 값의 도메인을 제한했다. let v2: Fruit ; v2 = Fruit.Apple; console.log(v2); v2 = Fruit.Peach; // 타입에러!!! : 타입으로 지정한 Fruit enum의 원소 도메인을 벗어났음
### enum ```ts //9. 열거형 enum 타입 //열거형 타입은 enum 키워드를 사용해서 정의한다. 열거형 타입의 각 원소는 값으로 사용될 수 있고, //타입으로 사용될 수도 있다. enum Fruit { //열거형 enum 타입을 사용해서 과일의 종류를 정의했다. Apple, Banana, Orange, } const val1: Fruit = Fruit.Apple; //Fruit의 열거형 타입 원소인 Apple을 값으로 사용했다. const enumError: Fruit = Fruit.Grape; //타입에러!! enum으로 명시되지 않은 원소를 값으로 사용 const val2: Fruit.Apple | Fruit.Banana = Fruit.Banana; // 이번엔 열거된 Apple을 타입으로 사용했다. const val2: Fruit.Peach | Fruit.Grape = Fruit.Peach //타입에러!! : enum에 명시되지 않은 원소를 값으로 사용. //명시적으로 원소의 값을 입력하는 코드 enum Fruit1 { Apple1, Banana1 = 5, //Fruit 열거형의 선언에서 열거된 원소의 값을 명시적으로 입력함 Orange1 }