Literal Type
- 변수가 미리 선정된 데이터만 가질 수 있게 함.
- 변수에 들어올 값을 엄격하게 관리.
- 자동완성 이용 가능.
let 접니다: '탈모' | '솔로';
function 함수(a: 'hello'): 1 | 0 {
return 1;
}
함수('hello');
function 예제(x: '가위' | '바위' | '보'): ('가위' | '바위' | '보')[] {
return ['가위', '바위'];
}
- Literal Type 은 선정한 자료만 담을 수 있는
const
변수의 확장의 개념으로 볼 수 있음.
문제점
- Literal type은 값을 의미하는 것이 아닌, 말그대로 type을 의미함.
- 아래의
내함수()
의 파라미터 a
는 string
type 중 'kim' 이라는 값을 의미하는 것이 아니고, kim
type을 의미함.
function 내함수(a: 'kim') {}
내함수('kim');
const 자료 = {
name: 'kim',
};
내함수(자료.name);
해결1
const 자료2: { name: 'kim' } = {
name: 'kim',
};
내함수(자료2.name);
해결2
const 자료3 = {
name: 'kim' as 'kim',
};
내함수(자료3.name);
해결3
const 자료4 = {
name: 'kim',
} as const;
내함수(자료4.name);
- 객체의 value값 그대로를 타입으로 지정.
readonly
설정으로 참조값 수정 불가.