[Typescript] 리터럴 타입

갱갱·2024년 2월 7일
0

Typescript

목록 보기
1/4
post-thumbnail

✨ 리터럴 타입 (Literal Type)


literal의 뜻은 변하지 않는 데이터를 의미하는데 즉, 단어의 뜻을 보면 알 수 있듯 리터럴 타입은 특정한 값을 나타내는 타입이다. 해당하는 값이 특정한 리터럴 타입을 가져야하고, 값이 다르다면 에러가 발생한다. 특정 값의 사용을 강제하고자 할 때 사용된다고 한다. 또한 허용되는 타입이 정해져 있기 때문에 코드의 가독성도 높아진다.
리터럴 타입은 문자열, 숫자, 불리언 값 등에 사용이 된다. 이제 예시와 함께 알아보자.

💫 문자열 리터럴 타입


let gender: "male" | "female";

gender = "male";
gender = "female";

위 코드를 보면 gender라는 변수는 "male", "female" 두 가지 문자열만 허용을 하는 리터럴 타입을 가진다. 만약 여기서 gender = "other"; 이라는 코드를 추가하면 어떻게 될까?

위 캡처를 보면 알 수 있듯 우리는 정해진 리터럴 타입과 맞지 않는 값을 할당한다면 에러가 발생한다.

💫 숫자형 리터럴 타입


숫자형도 문자열과 동일한 흐름이다. 단지 타입이 숫자로 바뀌었을 뿐이다. 몇 가지 숫자를 할당하고 해당 값과 다른 값이 할당된다면 에러를 반환한다.

let speed: 50 | 100 | 150 | 200;

speed = 50;
speed = 100;
speed = 250; // Error

💫 불리언 리터럴 타입


불리언 타입 또한 타입이 불리언으로 바뀐 게 전부다. 만약 'true'를 할당한다면 반드시 해당하는 리터럴 타입을 가지는 변수에 'true'를 할당해야만 한다.

let isTrue: true;

isTrue = true;
isTrue = false; // Error

💫 객체 리터럴 타입


타입스크립트는 객체에도 리터럴 타입을 사용할 수 있다.

let person: { name: "John", age: 25 };

person = { name: "John", age: 25 };
person = { name: "Alice", age: 30 }; // Error: 다른 값 할당
person = { name: "John" }; // Error: age 속성이 없음

객체에 다른 값이 할당되거나 모든 속성이 없다면 에러가 발생한다.

💫 타입 별칭


타입스크립트에서 타입에 별칭을 지정할 수 있는 기능이다.

type CardinalDirection = 'North' | 'East' | 'South' | 'West';
let direction: CardinalDirection;

direction = 'North';
direction = 'Northeast'; // Error

위 코드를 보면 동서남북 중에 하나의 타입을 가지도록 지정을 하고 원하는 변수에 리터럴 타입으로 설정을 해주면 된다. 그리고 리터럴 타입으로 설정한 변수에 해당되지 않는 값이 할당된다면 에러가 발생한다.

profile
괜찮은 개발자가 되어 보자

0개의 댓글