
TypeScript는 JavaScript의 상위 집합으로, 정적 타입 검사를 추가하여 더 안전하고 유지보수하기 쉬운 코드를 작성할 수 있도록 도와줌. JavaScript에서 TypeScript로 마이그레이션하면 타입 검사 덕분에 코드 품질이 향상되고, 타입 오류를 컴파일 타임에 미리 방지할 수 있음. 특히 대규모 코드베이스에서 코드 리팩토링과 유지보수가 쉬워지며, 자동 완성과 인텔리센스 기능으로 개발 생산성을 크게 높일 수 있음.
마이그레이션을 시작하기 전에 프로젝트의 코드베이스를 분석하고, 다음과 같은 준비를 해야 함.
TypeScript를 프로젝트에 추가하려면 typescript 패키지를 설치해야 함.
npm install --save-dev typescript
TypeScript 설정을 위해 tsconfig.json 파일을 프로젝트 루트에 생성함. 이 파일을 통해 TypeScript 컴파일러 옵션을 설정할 수 있음.
npx tsc --init
모든 파일을 한 번에 TypeScript로 변경하는 대신, 점진적으로 파일을 하나씩 마이그레이션하는 것이 좋음. 이를 통해 문제 발생 시 쉽게 해결할 수 있음.
기본적인 마이그레이션 단계는 .js 파일을 .ts로 확장자를 변경하는 것임. .ts 확장자로 변경하는 것만으로도 TypeScript 컴파일러가 기본적인 타입 검사를 시작함.
TypeScript는 타입 추론을 제공하지만, 함수 매개변수나 반환 값에 명시적인 타입 정의를 추가하면 더 안전한 코드가 됨. 아래 예시처럼 간단한 함수에 타입을 추가해볼 수 있음.
마이그레이션 중에는 타입을 알 수 없는 값에 any 타입을 임시로 지정할 수 있음. any는 모든 타입을 허용하므로 빠르게 마이그레이션할 때 유용하지만, 장기적으로는 any를 줄이고 구체적인 타입으로 대체하는 것이 좋음.
객체와 배열의 속성에도 타입을 지정해, 내부 데이터 구조를 더 명확하게 할 수 있음.
TypeScript로 마이그레이션하면서 프로젝트에 사용 중인 외부 라이브러리도 함께 설정해야 함. TypeScript는 외부 라이브러리 타입을 정의한 DefinitelyTyped 프로젝트를 통해 @types 패키지를 제공함.
외부 라이브러리의 타입이 필요하면 @types/[라이브러리명]을 설치함. 예를 들어, lodash 라이브러리의 타입을 설치하려면 아래와 같이 실행할 수 있음.
npm install --save-dev @types/lodash