Literal Type 사용법
let name :'hong';
let age :20;
변수 : Literal타입 형태로 선언
name = 'hong'
name = 'kim' //에러 발생
name이라는 변수는 'hong' 타입으로 선언했기 때문에 'kim'타입은 올 수 없음.
let 방향: 'left' | 'right';
방향 = 'left';
or 연산자 사용 가능.
=> 방향 = 'left' or 'right' 타입만 사용 가능.
function 함수(a: 'hello'):(1 | 0){
return 1
}
함수('hello')
함수도 마찬가지로
1. 파라미터 타입에 Literal타입으로 선언 가능.
2. return타입 또한 Literal타입 사용 시 그 값만 리턴 가능.
as const 문법 사용 전
var 자료 = {
name : 'hong'
}
function 함수(a : 'hong') {
}
함수(자료.name) //에러 발생
함수에서 파라미터 값으로 'hong'이라는 Literal 타입으로 선언했지만,
자료.name의 경우는 string타입이기 때문에 에러가 발생.
=> 즉 'hong'이라는 자료만 들어올 수 있습니다. 가 아니라 'hong'이라는 타입만 들어올 수 있습니다.로 이해할 것.
as const 문법 사용 후
var 자료 = {
name : 'hong'
} as const;
function 함수(a : 'hong') {
}
함수(자료.name)
as const 키워드를 사용하면
1. 타입을 object의 value로 변경. (Literal타입으로 변경)
2. object안의 속성을 readonly로 변경 (엄격해짐)
흔히 자바스크립트에서 볼 수 없었던 타입을 직접 만든다거나 등등 새로운 문법을 공부하면서 더 재밌어지고 있다.
별거 아닌데 공부하면 할수록 양이 많아져서 복잡해진다.. 예제를 자주 찾아보고 단련해야겠다!
'TypeScript' 카테고리의 다른 글
interface vs type (0) | 2023.07.03 |
---|---|
함수 및 methods에 type alias 사용법 (0) | 2023.07.03 |
타입 정의가 길고 복잡하다면 type alias & readonly (0) | 2023.07.02 |
타입 확정하기 (Narrowing & Assertion) (0) | 2023.07.02 |
함수에 타입 지정하는 법 (0) | 2023.07.02 |