let 방향: 'left' | 'right';
방향 = 'left';
string, number 같은 것 이외에도 원하는 글자나 숫자를 타입으로 만들 수 있음
'left'와 'right' 자체가 type
function 함수(a : 'hello') : 1 | 0 | -1 {
return 1
}
함수에서도 사용 가능함
var 자료 = {
name : 'kim'
}
function 내함수(a : 'kim') {
}
내함수(자료.name)
위의 코드는 에러가 남. 함수의 파라미터 a의 type은 'kim'이고 자료.name의 type은 string이지 'kim'타입이 아니기 때문!
var 자료 = {
name : 'kim'
} as const;
function 내함수(a : 'kim') {
}
내함수(자료.name)
이런식으로 as const를 붙이면
- 타입을 object의 value로 변경 (타입을 'kim'으로 바꿔줍니다)
- object안에 있는 모든 속성을 readonly로 변경 (변경하면 에러나게)