[typescript] 컴파일러 플래그를 사용하여 런타임 타입 체크 라이브러리 설정하기

TypeScript는 정적 타입 언어이기 때문에 컴파일 시점에 타입을 확인하지만, 런타임에서 타입을 확인하는 경우가 종종 있습니다. 특히, 성능, 안전성, 디버깅을 위해 런타임 타입 체크가 필요한 경우에는 tsc 컴파일러 플래그를 사용하여 런타임 타입 체크 라이브러리를 설정할 수 있습니다.

런타임 타입 체크 라이브러리 설정하는 방법

1. tsconfig.json 파일 수정

먼저, 프로젝트의 루트 디렉토리에 있는 tsconfig.json 파일을 열고, compilerOptions 항목에 다음과 같이 emitDecoratorMetadataexperimentalDecorators 플래그를 추가합니다.

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  }
}

2. 런타임 타입 체크 라이브러리 설치

다음으로, 런타임 타입 체크를 위한 라이브러리를 설치합니다. 가장 인기 있는 옵션은 reflect-metadata 라이브러리입니다.

npm install reflect-metadata

3. 직렬화 라이브러리 설치 (선택 사항)

만약, 클래스의 인스턴스를 JSON 형태로 직렬화 및 역직렬화하기 위해 class-transformer (또는 같은 역할을 하는 라이브러리)를 사용하는 경우, 해당 라이브러리도 추가로 설치합니다.

npm install class-transformer class-validator

위의 세 가지 단계를 거치면, TypeScript 프로젝트에서 런타임 타입 체크를 위한 준비가 완료됩니다.

이제, TypeScript의 데코레이터와 함께 reflect-metadataclass-transformer를 사용하여 런타임 타입 체크를 활용할 수 있습니다.

프로젝트에서 런타임에서의 타입 안전성을 확보하는 데 필요한 설정을 했다면, 이제 더 안전하고 안정적인 TypeScript 어플리케이션을 개발할 수 있을 것입니다.

참고 자료