rhanziy

TS - Literal types로 값 지정하기 본문

Html_css_js

TS - Literal types로 값 지정하기

rhanziy 2023. 1. 5. 18:06

const보다 더 엄격한 값 지정이라고 생각하면 된다.

let 이름 :123;
let 나 : '30살' | '백수';

이러면 무조건 이름엔 123이 들어가야하고, 나 라는 변수에는 30살 or 백수라는 값만 넣을 수 있다.

 

function testFunction(hand :'가위'|'바위'|'보') :('가위'|'바위'|'보')[]{
    console.log(hand);
    return [ '보' ];
}

testFunction('가위');

testFunction 함수의 파라미터에는 '가위' or '바위' or '보' 라는 문자만 들어올 수 있고, return 값도 동일.

 

 

그럼 obj.key의 값을 파라미터로 사용하고 싶으면!!!

var data = {
    name : 'kim'
} as const   
// 1. object value 값을 그대로 타입으로 지정해준다.
// 2. obj 속성에 모두 readonly 속성 부여


// kim 이라는 타입만 들어올 수 있습니다. string.
function customFnc(a : 'kim'){

}

customFnc(data.name);

오브젝트 자료 뒤에 as const를 붙여줌으로서 객체 속성 값을 타입으로 지정해준다.

자동으로 readonly속성 부여됨.

as const를 붙이지 않았을 때엔 오류발생. 왜냐면 kim != data.name 이여서

Comments