TypeScript (4) 리터럴 타입

Jiwon Youn·2021년 3월 10일
1

TypeScript

목록 보기
4/6

리터럴 타입 (Literal Type)

TypeScript에는 문자열과 숫자, boolean 세 가지 리터럴 타입이 있는데 이를 사용하면 문자열이나 숫자에 정확한 값을 지정할 수 있다.

Literal Narrowing

var 또는 let으로 변수를 선언할 경우 변수의 값을 변경할 수 있다. 하지만 const로 변수를 선언하게 되면 TypeScript에게 이 객체는 절대 변경되지 않음을 알린다.

const helloWorld = "Hello World";

let hiWorld = "Hi World";

위 예시에서 helloWorld는 문자열이 아닌 "Hello World"로 타입을 정하지만 hiWorld는 변경될 수 있으므로 문자열로 선언한다.

String Literal Types (문자형)

문자열 리터럴 타입은 유니언 타입, 타입 가드 그리고 타입 별칭과 잘 결합된다. 이런 기능을 함께 사용하여 문자열로 enum과 비슷한 형태를 갖출 수 있다.

type Easing = "ease-in" | "ease-out" | "ease-in-out";

class UIElement {
 animate(dx: number, dy: number, easing: Easing) {
  if(easing === "ease-in") {
   // ...
  } else if(easing === "ease-out") {
  } else if(easing === "ease-in-out") {
  } else {
   // 타입을 무시하면 이 곳에 도달한다.
  }
 }
}

허용된 세 개의 문자열이 아닌 다른 문자열을 사용하게 되면 오류가 발생한다. 문자열 리터럴 타입은 오버로드를 구별하는 것과 동일한 방법으로 사용될 수 있다.

Numeric Literal Types (숫자형)

위 문자열 리터럴과 같은 역할을 하는 숫자형 리터럴 타입도 있다.

function rollDice(): 1 | 2 | 3 | 4 | 5 | 6 {
 return (Math.floor(Math.random() * 6) + 1) as 1 | 2 | 3 | 4 | 5 | 6;
}

이는 주로 설정값을 설명할 때 사용된다.

참고 문서

0개의 댓글