리터럴 타입(Literal Types)는 TypeScript에서 특정 값만을 가지는 타입을 정의해주는 기능입니다. 이를 통해 더 구체적이고 제한적인 타입을 만들수 있어, 코드의 안정성과 가독성을 향상시킬 수 있습니다. 리터럴 타입에는 문자열, 숫자, 불리언 등 다양한 기본 타입에 적용할 수 있습니다.
1. 문자열 리터럴 타입
문자열 리터럴 타입에는 특정 문자열 값만을 허용하는 타입입니다.
type Driver = 'left' | 'right' | 'up' | 'down' | 'break';
function MoveEvent(direction: Driver) {
console.log(`Moving ${direction}`);
}
MoveEvent('up'); // OK
MoveEvent('break'); // OK
MoveEvent('foward'); // X Not Driver Type
2. 숫자형 리터럴 타입
숫자형 리터럴 타입도 특정 숫자 값만을 허용합니다.
type StatusCode = 200 | 404 | 500;
function InternetCode(status: StatusCode) {
console.log(`Response status: ${status}`);
}
InternetCode(404); // OK
InternetCode(200); // OK
InternetCode(5000); // Failed 5000 Code Not List !
3. 불리언 리터럴 타입
불리언 리터럴 타입은 참(true) 또는 거짓(false)만을 허용하는 타입입니다.
type IsActive = true | false; // true or false only
function setActive(active: IsActive) {
console.log(`Active Status: ${active}`);
}
setActive(true); // OK
setActive(false); // OK
// setActive(NotTrue); // Not Error True & False
4. 객체 리터럴 타입
리터럴 타입은 객체의 속성에 대해 정의할 수 있습니다.
type Pack = {
color: 'red' | 'gray' | 'blue';
pack: 'collection' | 'Fork' | 'Thank';
};
const pickA: Pack = { color: 'red', pack: 'Fork' }; // Success
// const pickB: Pack = { color: 'red', pack: 'Tick' }; // Fail
5. 리터럴 타입과 유니온 타입
리터럴 타입은 유니온 타입과 함께 사용하며 여러 값들을 허용할 수 있습니다.
type Toast = 'Egg' | 'ham' | 'Cheese';
function eat(toast: Toast) {
console.log(`Eating a ${toast}`);
}
eat('Cheese'); // true
eat('Egg'); // true
// eat('chicken'); // Error: 'chicken' toast is not list
요약
- 리터럴 타입을 잘 활용하면 API 응답 처리, 상태 관리, 이벤트 핸들링 등 유용하게 사용할 수 있다
- 이를 통해 코드의 안정성을 높히고 예상치 못한 에러를 방지함
- TypeScript에서 리터럴 타입은 특정 값만을 허용하는 타입을 정의할 수 있음
- 더 안전하고 직관 적인 코드를 작성하게 도와 주며 문자열, 숫자, 불리언, 객체 등 다양한 형태의 리터럴 활용
- 프로그램의 가독성과 유지보수성을 향상시켜준다.
GitHub - Koras02/typescript-bloging
Contribute to Koras02/typescript-bloging development by creating an account on GitHub.
github.com
LIST
'Front-End > TypeScript' 카테고리의 다른 글
[TypeScript] 7장 클래스 (0) | 2025.02.20 |
---|---|
[Typescript] 6장 유니언 타입과 교차 타입 (0) | 2025.02.18 |
[TypeScript] 4강 함수 (0) | 2025.02.13 |
[TypeScript] 3강 인터페이스 (0) | 2025.02.11 |
[Typescript] 2강 기본적인 타입 소개 (0) | 2025.02.09 |