enum Color {
Red,
Green,
Blue,
}
Color라는 열거형을 정의하고 있습니다. 열거형의 값은 Red, Green, Blue
enum Color {
Red = 1, // 1
Green = 2, // 2
Blue = 4, // 4
}
역 매핑은 숫자형 열거형에만 존재하는 특징입니다. 열거형의 키(key)로 값(value)을 얻을 수 있고 값(value)으로 키(key)를 얻을 수도 있습니다.
enum Enum {
A
}
let a = Enum.A;
let nameOfA = Enum[a]; // "A"
위와 같이 열거형의 키로 값을 얻을 수 있지만, 값으로도 열거형의 키를 얻을 수 있습니다. 이는 숫자형 열거형에만 존재하며, 문자형 열거형에서는 존재하지 않는 특징입니다.
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
let myDirection: Direction = Direction.Up;
console.log(myDirection); // 출력: "UP"
위 코드는 Direction이라는 문자열 기반의 열거형(Enum)을 정의하고 있습니다. Up, Down, Left, Right 각각에는 문자열 값이 할당되어 있습니다. 그리고 myDirection 변수를 Direction.Up으로 초기화하고 있습니다. 출력 결과로는 "UP"이 나오게 됩니다.
또한 문자형 열거형에는 숫자형 열거형과는 다르게 auto-incrementing이 없습니다. 대신 디버깅을 할 때 숫자형 열거형의 값은 가끔 불명확하게 나올 때가 있지만 문자형 열거형은 항상 명확한 값이 나와 읽기 편합니다.
// string 타입을 사용할 때
const name: string = 'capt';
// 타입 별칭을 사용할 때
type MyName = string;
const name: MyName = 'capt';
// Ex
type Name = string;
type Email= string;
type FooFunction = () => string; // 함수도 타입을 가지고 규정할 수 있다. 반환값이 string
let n = 1;
let b = true;
let s = 'Hello';
타입 추론은 타입 주석(type annotation) 없이 변수의 유형을 정의하는 결정하는 문법입니다. 예제 코드와 같이 타입 주석을 생략하고 대입되는 값을 통해 변수 타입을 결정합니다. 매번 타입 주석을 사용하지 않아도 손쉽게 변수 유형을 정의하고 사용할 수 있게 해주는 방법입니다.