Published on

원시타입과 리터럴타입

원시타입이란?

원시 타입(Primitive Type)은 동시에 한개의 값만 저장할 수 있는 타입들을 말합니다.
예를 들어 배열이나 객체 같은 비 원시타입들은 동시에 여러개의 값을 저장할 수 있는 반면,
number, string, boolean 등의 원시 타입은 숫자면 숫자, 문자열이면 문자열 딱 하나의 값만 저장할 수 있습니다.

number 타입

let num1: number = 123
let num2: number = -123
let num3: number = 0.123
let num4: number = Infinity
let num5: number = NaN

number 타입은 자바스크립트에서 숫자를 의미하는 모든 값을 포함하는 타입입니다. 단순 정수 뿐만 아니라 소수, 음수, Infinity, NaN 등의 특수한 숫자들도 포함합니다.

boolean 타입

let bool1: boolean = true
let bool2: boolean = false

boolean 타입은 참과 거짓만을 저장하는 타입입니다. true 또는 false만 이 타입에 해당됩니다.

let null1: null = null

null타입은 오직 null 값만 포함하는 타입입니다.

undefined 타입

let unde1: undefined = undefined

undefined 타입 역시 null 타입과 마찬가지로 오직 하나의 값 undefined만 포함하는 타입입니다.


리터럴 타입이란?

타입스크립트에는 string, number 처럼 범용적으로 많은 값을 포함하는 타입 뿐만 아니라 딱 하나의 값만 포함하는 타입도 존재합니다.
따라서 다음과 같이 변수의 타입을 숫자 10으로 설정하는 것 또한 가능합니다.

let numA: 10 = 10

변수 numA의 타입을 숫자 10으로 설정했습니다. 이렇게 설정하면 이제 numA에는 10 이외의 값을 저장할 수 없게 됩니다.

이렇듯 하나의 값만 포함하도록 값 자체로 만들어진 타입을 타입스크립트에서는 ‘리터럴 타입’이라고 부릅니다.
참고로 여기서 리터럴은 우리말로 ‘값’ 이라는 뜻 입니다.
또한 숫자만이 아닌, 문자열 혹은 불리언 타입의 값고 모두 리터럴 타입으로 만들 수 있습니다.

let strA: 'hello' = 'hello'
let boolA: true = true
let boolB: false = false