타입을 제대로 알아야 하는 이유
1. 변수
변수 : 프로그래밍 언어에서 변수는 데이터를 저장하는 공간
2. 변수와 타입
변수에 저장되는 데이터는 여러가지 타입이 있을 수 있는데, 타입을 이해하고 올바르게 사용하면 코드의 가독성과 안정성이 향상된다.
TypeScript 의 장점
- TypeScript는 정적 타입 시스템을 도입함으로써 이러한 이점들을 제공하고 있다.
- 개발자들이 더 안정적이고 효율적인 코드를 작성할 수 있게 도와준다.
- 이를 통해 프로젝트의 전반적인 품질이 향상되고, 더 나은 소프트웨어 개발 경험을 제공할 수 있다
[기본 타입 종류]
1. boolean(불리언)
2. number(숫자)
3. string(문자)
4. array(배열)
5. tuple(튜플)
튜플은 서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열로, 기존의 배열은 다른 타입의 원소가 들어가면 오류가 난다.
그러나 튜플은 사용할 수 있는 타입을 정의해놓으면, 허용된 타입의 데이터들을 저장할 수 있음.
const person: [string, number, boolean] = ['Spartan', 25, false];
const person2: [string, number, boolean] = [25, 'Spartan', false]; // 오류!
person 이라는 튜플에 데이터를 더 저장하고 싶어요
- 원칙적으로는 데이터를 더 저장하는 것은 타입 안정성에 위배가 되는 행위
- 따라서, 정의된 데이터 타입의 개수와 순서에 맞추어 저장을 하는 것이 필수
- 튜플에서도 배열의 메소드인 push를 사용하여 정의된 데이터 타입의 개수보다 더 저장할 순 있음.
- 하지만, 이렇게 억지로 데이터를 넣으면 튜플 구조가 내부적으로 변경이 되니 좋은 선택은 아니다.
6. enum
- enum은 열거형 데이터 타입
- 다양한 상수를 보다 더 이해하기 쉬운 문자열 이름으로 접근하고 사용할 수 있게 하는 타입
- enum 안에 있는 각 요소는 값이 설정되어 있지 않으면 기본적으로 숫자 0으로 시작, 맨위 값을 3을 주면 다음값은 4가 됨.
- enum 안에 있는 요소에는 number 혹은 string타입의 값만을 할당할 수 있음.
- 숫자를 입력하면 양방향 매핑이 됨.
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
enum UserLevel {
NOT_OPERATOR, // 0
OPERATOR // 1
}
function checkPermission(userRole: UserRole, userLevel: UserLevel): void {
if (userLevel === UserLevel.NOT_OPERATOR) {
console.log('당신은 일반 사용자 레벨이에요');
} else {
console.log('당신은 운영자 레벨이군요');
}
if (userRole === UserRole.ADMIN) {
console.log("당신은 어드민이군요");
} else if (userRole === UserRole.EDITOR) {
console.log("당신은 에디터에요");
} else {
console.log("당신은 사용자군요");
}
}
const userRole: UserRole = UserRole.EDITOR;
const userLevel: UserLevel = UserLevel.NOT_OPERATOR;
checkPermission(userRole, userLevel);
'TypeScript' 카테고리의 다른 글
[TypeScript] Any, unknown, union (0) | 2023.07.25 |
---|---|
[TypeScript] const, readonly (0) | 2023.07.25 |
[TypeScript] JavaScript 라이브러리를 TypeScript 에서 사용하기 (0) | 2023.07.25 |
[TypeScript] .d.ts 파일 (0) | 2023.07.25 |
[TypeScript] tsconfig.json 옵션 (0) | 2023.07.25 |