TypeScript 6.0 Beta 출시! 7.0으로의 전환, 무엇이 달라질까?
TypeScript 6.0 Beta 버전 출시, 7.0 버전으로의 전환을 위한 과도기적 릴리스
Go 언어로 재작성된 컴파일러를 기반으로 하는 7.0 버전은 성능 향상에 초점
모듈 시스템(Module System) 및 컴파일러 옵션(Compiler Options)의 대대적인 변경
개발자들은 성능 개선(Performance Improvement)에 대한 기대와 함께, 마이그레이션(Migration)에 대한 우려 표명
TypeScript 7.0: Go 기반 네이티브 컴파일러 도입
TypeScript 6.0은 7.0으로의 전환을 위한 중요한 단계로, Go 언어(Go Language)로 작성된 새로운 컴파일러를 기반으로 한다. 이는 네이티브 코드의 속도와 공유 메모리 멀티스레딩(Shared-memory multi-threading)을 활용하여 컴파일 속도(Compile Speed)를 대폭 향상시킬 것으로 예상된다. 댓글에서는 7.0 버전에 대한 기대감을 드러내며, 특히 성능 개선에 대한 높은 관심을 보였다.
모듈 시스템 및 컴파일러 옵션의 변화
TypeScript 6.0에서는 ESM(ECMAScript Modules)을 중심으로 모듈 시스템 지원이 강화되고, 기존의 `amd`, `umd`, `systemjs` 등의 옵션은 더 이상 지원되지 않는다. 또한, `baseUrl` 옵션이 deprecated 되면서, 개발자들은 path mapping 설정을 변경해야 한다. 이러한 변화는 현대적인 개발 환경에 맞춰 TypeScript의 설정을 단순화하고, 빌드 성능(Build Performance)을 개선하기 위한 것이다.
--stableTypeOrdering 플래그와 타입 정렬
TypeScript 7.0에서는 병렬 타입 검사(Parallel Type Checking)를 통해 전체 검사 시간을 단축할 예정이다. 이를 위해, 6.0 버전에서는 `--stableTypeOrdering` 플래그를 도입하여 7.0 버전과 동일한 타입 정렬 방식을 적용할 수 있도록 했다. 이 플래그는 타입 검사 순서에 따른 선언 파일(Declaration File)의 변화를 줄여, 6.0과 7.0 간의 마이그레이션 과정에서 발생할 수 있는 혼란을 줄이는 데 기여할 것으로 보인다.
Temporal API 및 DOM 관련 개선
TypeScript 6.0은 Temporal API에 대한 내장 타입을 제공하여, 개발자들이 최신 JavaScript 기능을 미리 사용할 수 있도록 지원한다. 또한, `lib.dom.iterable.d.ts`와 `lib.dom.asynciterable.d.ts`의 내용을 `lib.dom.d.ts`에 통합하여, DOM 관련 설정을 간소화했다. 이러한 개선은 개발자 경험을 향상시키고, 최신 웹 표준(Web Standards)에 대한 지원을 강화하기 위한 노력의 일환이다.