대부분의 메타 프로그래밍에서처럼 TypeScript 역시 짧은 코드에 함축된 다양한 내재 기능이 적용되어 개발자에게 혼란스러움을 주는 경우가 많습니다. 아래의 코드가 그 예시인데요.
const methods = [
"GET",
"POST",
"PUT",
"DELETE"
] as const;
type Method = typeof methods[number];
위의 타입으로써 Method는 다음과 같습니다.
"GET" | "POST" | "PUT" | "DELETE"
여기에 적용된 TypeScript와 관련된 적용 기능 중 중요한 것을 2가지 뽑지면 as const를 통한 문자열 배열의 ‘읽기전용 튜플화’와 Indexed Access Type을 통한 ‘유니온 타입화’입니다.
