let 나이 :24; // Literal type
나이 = 24;
나이 = 29; // error
let 오정환 :'대머리'|'솔로';
오정환 = '대머리';
오정환 = '풍성충' // error
함수
function 함수(a :'hello') :1|0 { // Literal type
return 0;
}
함수('hello');
function 확률(패 :'가위'|'바위'|'보') :('가위'|'바위'|'보')[] { // Literal type
return [패];
}
확률('가위');
"const를 사용하면 되지 않나요?"
▶ 1 값을 가진 변수를 지정하고 싶어요 const one = 1; ▶ 0 또는 1을 가진 변수를 지정하고 싶어요. const bit = 1.....?? 0??? let bit :number; ?? ▷ let bit :0|1; // 이런 경우에, literal type을 사용하면 유용 bit = 1; bit = 0; bit = 2; // error
var 자료 = {
name : 'kim'
}
function 내함수(a :'kim'){
// code
}
내함수(자료.name); // error
오류가 나는 이유?
함수의 파라미터 (a :'kim')의 의미는 kim이라는 자료만 들어올 수 있다는 의미가 아닌, kim이라는 타입만 들어올 수 있다는 의미이다.
'var 자료' 변수 위에 커서를 올려놓으면, name은 string 타입이라고 명시되어 있다. 고로, 자료.name은 'kim'타입이 아니라 string 타입이여서 오류가 발생하는 것이다.