AI 요약
마이크로소프트 TypeScript 팀은 현재 npm에서 사용 가능한 TypeScript 6.0 버전이 기존 JavaScript 기술 스택 기반 컴파일러의 마지막 대규모 업데이트가 될 것이라고 발표했습니다. 차기 버전인 7.0부터는 네이티브 성능과 다중 스레드 공유 메모리 활용을 위해 Go 언어로 재작성된 컴파일러와 언어 서비스가 도입될 예정입니다. 6.0 버전은 개발자들이 7.0으로 원활하게 전환할 수 있도록 엔진 간의 동작 차이를 줄이는 가교 역할을 수행하며, 동시에 ES2025 지원 및 타입 추론 개선 등 독립적인 가치를 지닌 기능들을 대거 포함했습니다. 특히 7.0 미리보기 버전이 이미 VS Code와 npm에서 시용 가능한 상태로, 팀은 6.0을 통해 사전에 프로젝트의 호환성을 점검할 것을 권장하고 있습니다.
핵심 인사이트
- Go 기반 엔진 전환: TypeScript 7.0은 Go 언어로 컴파일러를 재작성하여 네이티브 성능을 극대화하며, 6.0은 이를 위한 마지막 JS 기반 전환점입니다.
- 검사 성능 옵션: 6.0과 7.0의 결과 일치성을 확인하기 위한
--stableTypeOrdering옵션이 추가되었으며, 이 옵션 사용 시 극단적인 경우 검사 시간이 약 25%까지 추가 소요될 수 있습니다. - 기본 설정의 엄격화:
strict모드가 기본적으로true로 설정되며,module은esnext,target은es2025가 기본값이 되는 등 현대적인 런타임을 지향하는 변화가 일어났습니다. - 커뮤니티 기여 반영: Mateusz Burzyński가 기여한
this미사용 메서드 타입 추론 개선과 magic-akari 등이 추진한 Node.js 20의#/접두사 지원 등이 포함되었습니다.
주요 디테일
- 타입 추론 개선: 객체 리터럴에서
this를 사용하지 않는 메서드의 경우, 컨텍스트 민감(context-sensitive) 규칙을 낮게 처리하여 매개변수가unknown으로 추론되던 버그를 수정했습니다. - 모듈 해석 유연성: 이전에는 금지되었던
--moduleResolution bundler와--module commonjs의 조합이 6.0부터 허용되어 레거시 프로젝트의 점진적 마이그레이션이 쉬워졌습니다. - ES2025 및 표준 라이브러리:
RegExp.escape,Promise.try,Iterator/Set의 새로운 메서드 등이 포함된 ES2025를 지원하며, Stage 4 단계인TemporalAPI가 내장 타입으로 추가되었습니다. - Node.js 하위 경로 지원:
package.json의imports필드에서#root/와 같은 형식 외에#/*직접 매핑을 지원하는 Node.js 20의 최신 규격이 반영되었습니다. - 파괴적 변경 대응: 기존 프로젝트의 호환성 유지를 위해
tsconfig에"ignoreDeprecations": "6.0"을 설정하여 경고를 일시적으로 억제할 수 있습니다.
향후 전망
- 빌드 속도의 혁신: Go 기반 엔진이 도입되는 7.0 시대에는 대규모 프로젝트의 컴파일 및 IDE 응답 속도가 비약적으로 향상될 것으로 기대됩니다.
- 에코시스템 재편: 6.0에서 7.0으로 넘어가는 과정에서 발생하는 엄격한 타입 체크와 설정 변경은 장기적으로 TypeScript 생태계를 더욱 견고하고 표준에 가깝게 만들 것입니다.
출처:juejin
