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)열거형(Enum) 타입
//게시글 게시 상태코드 열거형
enum DisplayType {
NoneDisplay = 0,
Display = 1,
}
const displayCode = 1;
const display = displayCode as DisplayType;
if (display === DisplayType.Display) {
console.log("해당 게시글은 게시상태입니다.");
}
//SNS 타입 열거형
enum SNSType {
None = "",
Facebook = "facebook",
Instagram = "instagram",
Twitter = "twitter",
}
//회원가입 상태 타입 열거형
//상수값을 지정하지 않으면 0부터 시작하는 숫자값이 할당됩니다.
enum EntryStatus {
Inactive, //0
Active, //1
Pending, //2
}
//회원 유형 타입 열거형
enum MemberType {
Admin = 2,
User = 1,
Guest = 0,
}
type Member = {
id: number;
email: string;
password: string;
entryStatus: EntryStatus;
memberType: MemberType;
snsType: SNSType;
address: { city: string; country: string };
};
const snsTypeCode = "Facebook";
//해당 MemberType 타입의 변수를 선언하고 값을 할당합니다.
let member: Member = {
id: 1,
email: "test@test.co.kr",
password: "dfdfdfd23sdsdsds..",
memberType: MemberType.Admin,
snsType: snsTypeCode as SNSType,
entryStatus: EntryStatus.Pending,
address: {
city: "Seoul",
country: "South Korea",
},
};
console.log("member:", member);
//tsc --strictNullChecks type-literal-enum.ts
//node type-literal-enum.js
B)코딩 핵심 내용 설명
-Literal Type은 문자열,숫자형 리터널 타입이 존재합니다.
-Enum Type(열거형타입)은 enum으로 선언하고 여러개의 상수셋을 정의해 구현합니다.
-Enum Type 대신 Union 타입을 통해 특정값 범위를 제한할수도 있습니다.
-열거형 상수에 값을 할당하지 않으면 숫자형 값이 순차적으로 0부터 할당됩니다.