let john :'대머리';
let kim :'솔로';
string, number 이런 것만 타입이 될 수 있는게 아닙니다.
일반 글자같은 것도 타입이 될 수 있습니다.
그럼 신기하게도
john이라는 변수는 이제 '대머리' 라는 글자만 할당할 수 있습니다.
kim이라는 변수는 이제 '솔로' 라는 글자만 할당할 수 있습니다.
특정 글자나 숫자만 가질 수 있게 제한을 두는 타입을 literal type 이라고 부릅니다.
더욱 엄격한 실드
const 이름 = 'kim' | 'park' (이런 식의 문법은 자바스크립트에 없음)
var 자료 = {
name : 'kim'
} as const;
function 내함수(a : 'kim') {
}
내함수(자료.name)
as const는 효과가 2개인데
타입을 object의 value로 바꿔줍니다. (타입을 'kim'으로 바꿔줍니다)
object안에 있는 모든 속성을 readonly로 바꿔줍니다 (변경하면 에러나게)
object를 잠그고 싶으면 as const를 활용해보도록 합시다.