TypeScript 7.0 Beta 공개

4 hours ago 1

TypeScript 7.0 Beta 공개 - Go 네이티브 포팅으로 약 10배 빨라진 TS

  • 기존 TypeScript 컴파일러를 Go로 포팅한 새 네이티브 구현
  • “beta”지만 일상 작업과 CI에서 바로 써볼 수 있을 정도로 안정적이라고 강조
  • 새 코드베이스는 재작성(rewrite)이 아니라 기존 구현을 체계적으로 포팅
  • 타입 체크 로직은 TypeScript 6.0과 구조적으로 동일
  • TypeScript 6.0 대비 종종 약 10배 빠른 성능
  • 네이티브 코드 성능 + 공유 메모리 병렬화 기반
  • Microsoft 내부/외부의 수백만 LOC 코드베이스에서 이미 사용 중
  • Bloomberg, Canva, Figma, Google, Linear, Notion, Slack, Vercel 등과 사전 테스트
  • CLI뿐 아니라 에디터 경험도 더 가볍고 빠르게 개선

사용 방법

  • 현재는 별도 패키지로 설치
    • npm install -D @typescript/native-preview@beta
  • 기존 tsc 대신 tsgo 실행
    • npx tsgo --version
  • 향후 안정 버전은 다시 typescript 패키지와 tsc 엔트리포인트로 배포 예정

TypeScript 6.0과 병행 사용

  • 7.0 Beta는 @typescript/native-preview + tsgo로 제공
  • 기존 tsc와 tsgo를 나란히 실행하며 비교 가능
  • 안정 버전에서는 TS7이 tsc 이름을 다시 사용
  • TS6 호환용 @typescript/typescript6 패키지도 제공
  • TypeScript API에 의존하는 기존 도구는 당분간 TS6 API를 계속 쓰는 구성이 가능

중요한 제한

  • 7.0 Beta는 production-ready에 가깝지만 stable programmatic API는 아직 없음
  • 안정적인 API는 최소 TypeScript 7.1 이후, 몇 달 뒤 목표
  • TypeScript API에 직접 의존하는 도구/플러그인은 전환 주의 필요

병렬화

  • 파싱, 타입 체크, emit 등 여러 단계 병렬화
  • 타입 체크 워커 수를 조절하는 --checkers 옵션 추가
  • project reference 빌드를 병렬화하는 --builders 옵션 추가
  • 단일 스레드 실행을 위한 --singleThreaded 옵션 추가
  • 대형 코드베이스와 모노레포에서 효과가 크지만, 병렬도를 높이면 메모리 사용량도 증가 가능

TypeScript 6.0 기준 호환성

  • TypeScript 7.0은 TypeScript 6.0의 타입 체크/CLI 동작과 호환을 목표
  • TS6에서 clean compile 되는 코드는 TS7에서도 동일하게 컴파일되는 것이 목표
  • 단, TS6의 새 기본값과 deprecated 기능 정리가 함께 적용됨
  • strict, module, rootDir, types 등의 기본값 변화는 기존 프로젝트에서 체감될 수 있음
  • 특히 rootDir과 types 변경은 마이그레이션 시 확인 필요
  • 오래된 타깃/모듈 설정이나 deprecated 옵션을 쓰는 프로젝트는 TS6 전환을 먼저 거치는 것이 권장됨

JavaScript/JSDoc 변경

  • JS 지원을 TypeScript 파일 분석 방식과 더 일관되게 재정리
  • 일부 JSDoc/Closure 스타일 문법과 오래된 JS 패턴 특수 처리가 제거됨
  • JS + JSDoc 기반 코드베이스는 별도 확인 필요

에디터 지원

  • VS Code용 TypeScript Native Preview 확장 제공
  • CLI와 같은 기반이라 에디터에서도 동일한 성능 개선
  • auto-import, hover, inlay hints, code lens, JSX linked editing 등 지원
  • LSP 기반이라 다른 현대적 에디터/도구에서도 활용 쉬움

향후 계획

  • 더 효율적인 --watch 구현 예정
  • JS 파일의 declaration emit parity 작업 예정
  • 에디터 기능 격차 보완 예정
  • 안정적인 programmatic API는 TypeScript 7.1 이후
  • TypeScript 7.0 안정 버전은 약 2개월 내 목표
  • RC는 그 몇 주 전 공개 예정
Read Entire Article