Literal Types

let 이름 : "Lee";
이름 = "kim"; //error, 이름에는 "Lee"이외의 값 들어올 수 없다.

function 함수( a : "hi" ){
	console.log(a);
}

함수("hello"); // error 함수의 parameter로 "hi"만 가능
return type도 똑같이 Literal type으로 지정해 줄 수 있다.

 

as const

아래와 같은 경우 Name.name의 type이나, show function의 parameter type 이 둘 다 "kim"이지만, Name.name 의 type을 찍어보면 string이 나온다. 이 경우 Name의 type을 직접 object라고 지정을 해주거나, Name의 뒤에 as const를 붙여주어 object value 값을 그대로 type으로 지정해주게 한다.

 

as const 장점

1. object value값을 그대로 타입으로 지정해준다.

2. object 속성들에 모두 readonly를 붙여준다.

var Name = {
	name : "kim"
};

function show( x : "kim" ){

}

show(Name.name); // error 발생
var Name = {
	name : "kim"
}as const;

or

var Name : object = {
	name : "kim"
};

function show( x : "kim" ){

}

show(Name.name); // 정상 동작

 

728x90

+ Recent posts