TypeScript 6.0 Beta가 공개됐습니다. 이번 버전은 기능 추가도 있지만, 더 큰 관점에서는 TypeScript 7.0에서 컴파일러/언어 서비스가 Go로 포팅되는 전환을 앞두고 현 JS 코드베이스 기반의 마지막 릴리스라는 점에서 의미가 큽니다.
핵심 요약
- 전환 릴리스: TypeScript 6.0은 7.0(Go 포팅) 이전의 ‘브릿지’ 성격이 강합니다.
es2025추가: 언어 문법 변화보다는 표준 라이브러리 타입이 확장됩니다.- Temporal 타입 내장: 차세대 날짜/시간 API인 Temporal을 TypeScript에서 타입으로 바로 쓸 수 있습니다.
--stableTypeOrdering도입: 6.0과 7.0 사이의 타입 정렬/표현 차이를 줄여 마이그레이션 비교를 쉽게 합니다(대신 느려질 수 있음).- Deprecated 옵션 증가: 6.0에서 경고로 예고한 옵션들이 7.0에서 제거될 예정이라 사전 정리가 중요합니다.
설치(베타)
npm install -D typescript@beta
프로젝트에 베타를 깔아 CI에서만 먼저 돌려보는 방식이 안전합니다(로컬 개발은 안정 버전 유지).
변경점 1) es2025 target/lib 추가
TypeScript 6.0은 target/lib에 es2025를 추가했습니다. ES2025 자체에 큰 문법 변화가 있진 않지만, 새 표준 API 타입들이 들어오고 일부 선언이 esnext에서 es2025로 이동합니다.
예시로 언급되는 것들:
RegExp.escapePromise.tryIterator/Set관련 메서드 선언 일부 이동
// tsconfig.json
{
"compilerOptions": {
"target": "es2025",
"lib": ["es2025", "dom"]
}
}
변경점 2) Temporal API 타입 내장
Temporal은 Date를 대체할 차세대 날짜/시간 API로 논의돼 왔고, TypeScript 6.0 Beta에서 Temporal 타입이 내장됩니다.
// 예시: Temporal 타입 사용
const yesterday = Temporal.Now.instant().subtract({ hours: 24 });
const tomorrow = Temporal.Now.instant().add({ hours: 24 });
설정 예시는 아래 형태로 안내됩니다.
--target esnext- 또는
"lib": ["esnext"] - (더 세분화된 옵션으로
temporal.esnext도 언급됨)
변경점 3) —stableTypeOrdering 플래그
6.0에서 새로 들어온 --stableTypeOrdering는 TypeScript 7.0의 타입 정렬 방식에 맞춰 6.0의 출력(특히 .d.ts) 차이를 줄이기 위한 “마이그레이션 보조” 플래그입니다.
- 장점: 6.0 ↔ 7.0 비교 시 “정렬 차이로 인한 노이즈” 감소
- 단점: 타입체킹이 느려질 수 있음(일부 코드베이스에서 최대 약 25% 언급)
# 6.0에서 7.0과 유사한 타입 정렬로 비교하고 싶을 때
npx tsc -p tsconfig.json --stableTypeOrdering
이 플래그는 “상시 사용”보다는 6→7 마이그레이션 검증/비교 용도로 보는 편이 좋습니다.
변경점 4) Map/WeakMap “upsert” 메서드 타입
ECMAScript의 “upsert” 제안에 따라 Map/WeakMap에 다음 메서드가 추가되고, TypeScript 6.0에서 관련 타입이 제공됩니다.
getOrInsertgetOrInsertComputed
const options = new Map<string, unknown>();
const strictValue = options.getOrInsert("strict", true);
변경점 5) Deprecations 대응(7.0 대비)
TypeScript 6.0에서는 여러 옵션이 deprecated로 표시되며, 문서에서는 일시적으로 경고를 무시하려면 아래 설정을 제시합니다.
// tsconfig.json
{
"compilerOptions": {
"ignoreDeprecations": "6.0"
}
}
다만 이건 “임시 유예” 성격이고, 7.0에서 완전 제거 예정이라 가능한 한 6.0 단계에서 정리하는 편이 안전합니다.
권장 적용 플로우(현실적인 체크리스트)
- CI에만 베타 적용:
typescript@beta로 타입체크만 먼저 돌리기 .d.ts영향 있는 패키지/라이브러리부터 확인- 선언 파일을 배포하거나 타입 노출이 큰 프로젝트는 우선순위 ↑
--stableTypeOrdering로 “비교 노이즈” 제거 후 차이 분석- deprecated 경고를 목록화 → 제거/대체 계획 수립
- Temporal/ES2025 타입 도입은 “필요한 곳부터” 점진 적용
릴리스 타임라인(발표 기준)
일부 매체에서는 다음 일정이 언급됩니다.
- RC 예정: 2026-02-24
- 정식 릴리스 예정: 2026-03-17
(프로젝트 적용은 실제 릴리스 노트/변경 로그를 최종 확인한 뒤 진행하는 것을 권장합니다.)
출처
- Microsoft TypeScript 팀 발표: https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/
- InfoWorld 요약 기사: https://www.infoworld.com/article/4131798/last-javascript-based-typescript-arrives-in-beta.html
- Techzine 요약 기사: https://www.techzine.eu/news/devops/138778/typescript-6-0-beta-announced-its-last-javascript-based-release/
- Temporal 문서(MDN): https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Temporal