
TypeScript는 자바스크립트에 타입 안정성을 추가해 큰 프로젝트 관리나 팀 협업에 유용하다. 특히, 배열을 활용해 유니온 타입을 생성하는 기능은 프로그램에서 예상 가능한 문자열 집합을 안전하고 효율적으로 관리할 수 있게 한다. 이번 글에서는 배열을 이용한 타입 생성 방법과 그 예시를 통해 해당 기법의 사용 방법과 장점을 살펴볼 것이다.
먼저, 다음과 같이 상수 배열을 정의한다:
export const FeedbackQuestionTypes = [
'ASSIGNMENT_COMPLETION',
'ASSIGNMENT_UNDERSTANDING',
'ASSIGNMENT_ETC',
] as const;
as const는 TypeScript에 이 배열이 리터럴 타입의 읽기 전용 배열임을 알려주며, 배열의 값이나 구조가 실행 중에 변경될 수 없음을 의미한다.
다음으로, 이 배열을 사용하여 유니온 타입을 생성한다:
export type AssignmentFeedbackQuestionType = typeof FeedbackQuestionTypes[number];
typeof FeedbackQuestionTypes는 배열의 타입을 추론하고, [number]는 이 배열의 모든 원소의 타입을 가져오는 인덱스 접근 방식을 사용한다.
결과적으로 AssignmentFeedbackQuestionType는 'ASSIGNMENT_COMPLETION' | 'ASSIGNMENT_UNDERSTANDING' | 'ASSIGNMENT_ETC'의 유니온 타입이 된다.
이러한 방식을 사용하면 여러가지 이점이 있다.
타입 안정성
첫째, 유니온 타입을 사용하면, 개발자는 오직 허용된 값들만을 변수에 할당할 수 있다. 이는 잠재적인 버그를 줄이고, 코드의 안정성을 높인다.
코드 유지 관리
둘째, 값 집합이 한 곳에서 관리되므로, 값이 변경되거나 새로운 값이 추가될 때 유지 관리가 용이하다.
개발 경험 향상
셋째, 대부분의 코드 편집기와 IDE는 이 타입 정보를 사용하여 자동 완성 기능을 제공한다. 이는 개발 과정을 더 빠르고 오류 없이 진행할 수 있게 돕는다.
TypeScript에서 배열을 사용해 유니온 타입을 만드는 방법은 코드의 안전성과 유지 관리를 향상시킬 수 있는 강력한 방법이다. 이 기법은 코드베이스 전반에 걸쳐 일관된 값을 보장하며, 개발자가 더 명확하고 정확한 코드를 작성하도록 돕는다. 다음 프로젝트에서 이 기법을 활용해 보는 것이 좋다.