더북(TheBook)

2.3 값 자체가 타입인 리터럴 타입이 있다

이전 절에서 배운 리터럴 타입에 대해 좀 더 알아봅시다. 타입 자리에 리터럴 값을 표기하면 됩니다.

let str: 'hello' = 'hello';
str = 'world'; 
// Type 'world' is not assignable to type 'hello'.

자바스크립트에서는 변수를 let으로 선언하면 어떤 값이든지 자유롭게 대입할 수 있습니다. 하지만 타입스크립트에서는 표기한 타입과 일치하는 값만 대입할 수 있습니다. 어떻게 보면 변수에 값을 자유롭게 대입하던 자바스크립트의 자유도를 제한받는다고 느낄 수 있습니다. 맞습니다. 타입스크립트는 자바스크립트의 자유도를 희생하는 대신 타입 안정성을 챙기는 언어입니다.

사실 let의 경우 원시 자료형에 대한 리터럴 타입을 표기하는 경우는 거의 없습니다. 애초에 그 목적으로 const 변수가 있습니다.

const str = 'hello'; 
// const str: "hello";
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.