TypeScript Literal 이해 및 활용
1)Literal & Enum Type
Literal Type과 Enum Type 데이터의 집합을 표현하는 타입니다.
Literal Type변수나 Enum(열거형) Type은 미리 정해진 문자열값 들이나 숫자값들을 미리 정의해두고 해당 범위내의 값들만을 사용할수있게 강제하는 기능을 기본 제공합니다.
Enum 타입은 열거형이라고 말하며 enum이라는 키워드를 사용해 여러개의 상수셋을 정의해 구현합니다.
D:\TypeScript\2-TS-Basic 폴더내에 type-literal-enum.ts파일을 생성 합니다.
A)Type Alias 예시코드 코딩하고 실행하기
-하기 코드와 같이 코딩을 진행합니다.
-자세한 내용은 주석을 참고바랍니다.
-literal-enum.ts
-코딩을 모두 진행 저장하고 아래 명령어를 통해 터미널창에서 ts파일을 컴파일하고 컴파일 결과.js파일을 실행합니다.
D:\TypeScript\2-TS-Basic
tsc --strictNullChecks type-literal-enum.ts
node type-literal-enum.js
//Case1)변수 값으로 문자열 Literal Type 사용하기
let genderType: "Male" | "Female";
genderType = "Male";
console.log("genderType:", genderType);
genderType = "Female";
console.log("genderType:", genderType);
//genderType = "None"; // 스트링 리터널 타입에서 사전 정의된 값이 아니여서 에러발생
type User = {
name: string;
age: number;
userType: "admin" | "user";
address: { city: string; country: string };
};
const user: User = {
name: "John Doe",
age: 25,
userType: "admin",
address: {
city: "Seoul",
country: "South Korea",
},
};
//Case2)함수의 반환값으로 숫자형 Literal Type 사용하기
function getUserType(user: User): 1 | 2 {
if (user.userType === "admin") {
return 1;
} else {
return 2;
}
}
console.log("getUserType:", getUserType(user)); //1
//Case3:Union 타입을 이용해 타입의 특정값만을 지정할수 있습니다.
//Enum(열거형) 타입과 유사하게 특정값만을 지정할수 있습니다.
type ProcessStates = "open" | "closed";
let state: ProcessStates = "open";
console.log("state:", state);
type OddNumbersUnderTen = 1 | 3 | 5 | 7 | 9;
let oddNumber: OddNumbersUnderTen = 3;
console.log("oddNumber:", oddNumber);