# As Const
Typescript as const에 대해
우리는 프로젝트를 하면 가끔씩 고정된 값을 쓸때가 있습니다. 예를 들어 필터에 [일반, 고급]을 나눠야 할때 처럼 말이죠. 원래 let은 타입 추론만 가능하며 const는 타입의 값을 추론할 수 있었습니다. 하지만 문제가 생기는데요 위의 방식으로 변수를 선언하면 Object의 값을 변수 = { string, string }; 이렇게 추론을 해버립니다. 이렇게 추론을 해버리면 어떠한 문제점이 생기냐 위의 사진처럼 상수인데도 불구하고 object의 특정 key값을 바꿀 수 있게 됩니다. 이러한 사태를 방지하기 위해 as const로 막는 것 입니다. 문법 설명 목적 우선 as const가 왜 나왔냐면 리터럴 타입의 추론 범위를 줄이고 값의 재할당을 막기 위해 나왔다고 합니다. 이게 뭔

Type Challenge - Tuple to Object
문제 배열(튜플)을 받아, 각 원소의 값을 key/value로 갖는 오브젝트 타입을 반환하는 타입을 구현하세요. code 정답 및 풀이 과정 답 풀이 과정 어떻게 배열이 객체의 프로퍼티가 되는지 궁금해서 as const에 대해 찾아봤다. as const는 배열을 객체화가 되도록 도와주는 문법적 표현 이었다. ex 그래서 객체 안에 {[K in T[?]] : K;} 하면 풀릴거 같았다. 구글링 하다가 T[number]가 튜플을 순회할 때 사용이 가능하다는 걸 보고 추가했다. 새롭게 알게 된 내용 as const Typescript 3.4 ver에서 추가된 const assertion 기능을 활용하기 위한 문법적 표현이다. const assertion은 말 그대로 상수라고 주장하는 것인데, 원래 상수가 아닌 것을 **상수인 것

[TS]Literal Types, as const, function type 에 type alias 저장
Literal Types string, number 뿐 아니라 일반 글자도 타입이 될 수 있다. john이라는 변수는 이제 'park' 이라는 글자만 할당할 수 있습니다. bob이라는 변수는 이제 'lee' 라는 글자만 할당할 수 있습니다. 위처럼 특정 글자나 숫자만 가질 수 있게 제한을 두는 타입을 literal type 이라고 부른다. or 기호도 사용 가능하다. 함수도 사용 가능하다. as const 해결방법 object 만들 때 타입을 잘 정하기. assertion 사용 (like as 'kim') as const 라는걸 object 자료에 사용 as const의 효과 타입을 object의 value로 바꿔준다. (타입을 'kim'으로 바꿔다) object안에 있는 모든 속성을 readonly로 바꿔준다. (변경하면 에러나게) function type 에 type alias 저장 숫자 두

Literal Type과 As Const
지금까지 TypeScript를 정리하면서 느낀 점은, 타입 지정이라는 기능을 개발자들의 다양한 요구를 반영하게 되면서 매우 세심한 기능들을 사용할 수 있게 되었다는 점입니다. 이번 게시물에서 다뤄 볼 Literal Type도 여기에 해당된다고 할 수 있겠습니다. Literal Type? Literal Type의 개념 제가 변수를 하나 만들었다고 가정하겠습니다. 그리고 저는 이 변수에, 'A'라는 문자열 데이터 하나만 담고 싶습니다. 그러면 간단하게 다음처럼 코드를 작성하면 될 것입니다. 그런데 'A' 혹은 'B'를 담고 싶으면 어떻게 해야 할까요? const 키워드 하나만으로는 딱 두 개의 알파벳만 허용하도록 하는 게 불가능해보이네요. 이럴 때 사용하는 것이 바로 Literal Type입니다. Literal Type은 어떤 변수가 특정한 타입을 넘어서, 특정한 값만 받아들일 수 있도록 선언하는 것입니다. ![](https://images.ve