2026년 3월 6일, TypeScript 팀이 TypeScript 6.0 RC를 공개했습니다. 이번 릴리스는 기능 추가와 함께 TypeScript 7 네이티브 포트 전환을 준비하는 다리 역할을 맡습니다.
이미 TypeScript를 실무에 쓰고 있다면 새 문법 수보다 두 가지를 먼저 확인합니다. 어떤 설정과 문법이 제거될 예정인지, 그리고 지금 무엇을 손봐야 TS 7 전환이 쉬워지는지입니다.
이 글은 TypeScript 6.0 RC의 주요 변화를 정리하고, 실무 프로젝트에서 바로 점검할 항목으로 연결합니다.
6.0은 TS 7로 넘어가기 전 마지막 JS 기반 릴리스입니다
TypeScript 팀은 6.0을 현재 JavaScript 코드베이스 기반의 마지막 큰 전환 릴리스로 설명합니다. 이후 나올 TypeScript 7은 Go 기반 네이티브 코드베이스를 토대로 한 새 세대 컴파일러가 될 예정입니다.
이 계획은 2025년 3월에 처음 공개됐습니다. TypeScript 팀은 공식 블로그에서 최대 10배 빠른 TypeScript를 목표로 네이티브 포트를 진행 중이라고 밝혔습니다. 이후 2026년 2월 11일 6.0 Beta, 2026년 3월 6일 6.0 RC로 전환 경로를 구체화했습니다.
-
TypeScript 6.0 RC: Announcing TypeScript 6.0 RC ↗
-
TypeScript 6.0 Beta: Announcing TypeScript 6.0 Beta ↗
-
네이티브 포트 배경: A 10x Faster TypeScript ↗
6.0에는 새 기능과 함께 TS 7 호환성을 미리 정리하는 변경이 들어 있습니다.
이번 RC에서 개발자가 바로 체감할 만한 변화
1. this를 쓰지 않는 함수의 타입 추론이 더 자연스러워졌습니다
RC는 generic call 안의 함수 표현식 타입 추론을 개선했습니다. 객체 리터럴 안에서 메서드 문법을 쓸 때 추론 실패가 줄었습니다.
TypeScript 팀 설명에 따르면 이전에는 this를 암묵적으로 가질 수 있는 함수를 문맥적으로 민감한 함수로 취급했습니다. 그래서 이런 함수는 추론 우선순위에서 밀리기도 했습니다. 6.0은 실제로 this를 쓰지 않는 함수라면 이 제약을 풀어 더 많은 코드를 통과시킵니다.
대규모 코드베이스에서는 “왜 arrow function은 되는데 method syntax는 안 되지?” 같은 상황이 줄어듭니다. JSX generic이나 복잡한 helper API를 많이 쓰는 팀이라면 차이를 느낄 가능성이 높습니다.
2. Node 서브패스 import에서 #/ 패턴을 공식 지원합니다
6.0은 Node의 subpath imports를 더 잘 지원합니다. 최신 Node 20 계열 환경과 함께 #/로 시작하는 import alias를 TypeScript에서도 쓸 수 있습니다.
예를 들면 다음처럼 작성할 수 있습니다.
{
"imports": {
"#": "./dist/index.js",
"#/*": "./dist/*"
}
}
import { formatDate } from "#/utils/date.js";
긴 상대 경로를 줄이고 싶지만 번들러 전용 alias와 Node 표준 방식 사이에서 고민하던 프로젝트라면 이 방식을 쓸 수 있습니다. 공식 블로그에 따르면 이 동작은 node20, nodenext, bundler 해석 전략에서 동작합니다. 현재 tsconfig 조합을 함께 확인합니다.
3. --stableTypeOrdering로 TS 7 차이를 미리 줄일 수 있습니다
6.0에는 TS 7 대비용 옵션인 --stableTypeOrdering이 들어왔습니다.
TypeScript 7은 병렬 타입 체크와 네이티브 구현 때문에 내부 타입 정렬 방식이 더 결정적이어야 합니다. 그래서 6.0에 7.0과 비슷한 타입 정렬 동작을 미리 재현하는 옵션이 추가됐습니다.
이 옵션은 다음 상황에서 씁니다.
- declaration emit 차이를 비교해야 할 때
- 6.0과 7.0 preview 결과를 나란히 검증할 때
- 순서 차이 때문에 노이즈가 커지는 대형 저장소에서 마이그레이션 리스크를 줄이고 싶을 때
TypeScript 팀은 이 옵션이 상시 권장 옵션은 아니며, 코드베이스에 따라 타입 체크 성능이 떨어질 수 있다고 안내합니다. 운영 기본값으로 켜지 않고 전환 점검용 도구로 씁니다.
라이브러리와 표준 API 측면의 변화
es2025 target/lib가 추가됐습니다
6.0은 target과 lib에 es2025 옵션을 추가했습니다. 언어 문법이 크게 늘지는 않았고, 표준 라이브러리 타입 구성이 정돈됐습니다.
공식 글은 다음 항목을 예로 듭니다.
RegExp.escapePromise.try- Iterator 관련 메서드
Set관련 메서드
런타임과 폴리필 전략이 정리된 프로젝트라면 esnext 대신 더 구체적인 타깃을 검토합니다.
Temporal 타입이 내장됩니다
Temporal API 타입이 TypeScript에 기본 포함됩니다. 공식 글에 따르면 --target esnext 또는 "lib": ["esnext"] 같은 설정에서 쓸 수 있습니다.
Date로 날짜와 시간을 다루기 어려웠다면 Temporal을 시험해 볼 수 있습니다. 런타임 지원은 아직 환경마다 다르지만, 타입 정의를 별도 패키지에 의존하지 않고 실험할 수 있습니다.
const tomorrow = Temporal.Now.instant().add({
hours: 24,
});
Map#getOrInsert, RegExp.escape 같은 표준 API 타입도 따라옵니다
이번 릴리스는 TypeScript 전용 기능보다 표준 JavaScript API를 타입 시스템에 빠르게 반영하는 데 무게를 둡니다. TS 6.0은 문법 업데이트보다 현대 JS 실행 환경과 타입을 맞추는 릴리스에 가깝습니다.
6.0에서 사라지거나 바뀌는 설정과 문법
실무 영향은 이 부분이 큽니다. 6.0은 여러 설정과 오래된 문법을 정리합니다.
assert 기반 import assertions는 사실상 종료 수순입니다
아래 문법은 앞으로 지원이 끊길 예정입니다.
import data from "./foo.json" asserts { type: "json" };
대신 import attributes의 with 문법을 써야 합니다.
import data from "./foo.json" with { type: "json" };
JSON import, CSS module import, asset import 코드가 있다면 with 문법으로 바꿉니다.
tsconfig.json이 있는데 tsc foo.ts를 실행하면 이제 에러가 납니다
기존에는 프로젝트 루트에 tsconfig.json이 있어도 파일 인자를 직접 넘기면 설정이 무시되는 경우가 있었습니다. 이 동작은 자주 혼란을 만들었고, 6.0은 이를 명시적인 에러로 바꿨습니다.
공식 예시는 아래와 같습니다.
tsc foo.ts
error TS5112: tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error.
이 변경은 CI와 스크립트에 영향을 줍니다. package.json scripts, custom build wrappers, editor task 설정에 tsc <file> 패턴이 남아 있는지 먼저 찾습니다.
여러 deprecated 옵션은 7.0에서 제거됩니다
Beta 공지에 따르면 6.0의 deprecation 경고는 7.0에서 제거될 항목을 미리 알려 줍니다.
공식 글은 필요하면 tsconfig.json에 아래 설정으로 deprecation을 일시 무시할 수 있다고 안내합니다.
{
"compilerOptions": {
"ignoreDeprecations": "6.0"
}
}
이 설정은 유예책입니다. 제거될 설정을 계속 끌고 가게 되므로, 샘플 저장소나 레거시 패키지부터 차례로 정리합니다.
실무 프로젝트에서 지금 바로 점검할 체크리스트
TypeScript 6.0 RC를 바로 도입하지 않더라도 아래 항목은 지금 확인합니다.
1. tsconfig에 낡은 옵션이 남아 있는지 확인합니다
- deprecated compiler option 사용 여부
- import assertions 구문 사용 여부
moduleResolution과module조합이 현재 런타임과 맞는지dom.iterable같은 과거 관성 설정이 불필요하게 남아 있는지
2. 사내 빌드 스크립트에서 tsc <file> 패턴을 찾습니다
테스트용으로 한두 파일만 검사하는 스크립트가 많습니다. 6.0부터는 이런 사용이 에러로 멈출 수 있습니다. tsc -p, tsc --project를 쓰거나, 필요하면 --ignoreConfig를 명시적으로 붙입니다.
3. TS 7을 염두에 두고 경고를 빚처럼 쌓아두지 않습니다
6.0은 중간 버전입니다. 지금 경고를 미뤄 두면 TS 7 전환 때 성능 개선을 누리기 전에 설정 제거 대응에 시간을 더 쓰게 됩니다.
4. 큰 저장소라면 --stableTypeOrdering로 차이를 미리 측정합니다
declaration emit이나 API report를 체크인하는 저장소라면 이 옵션으로 7.0 preview와의 diff를 먼저 줄입니다.
그래서 지금 업그레이드해야 할까
2026년 3월 13일 기준, 공식 최신 상태는 TypeScript 6.0 RC입니다. 아직 정식 릴리스가 아니므로 모든 팀이 즉시 production 기본값으로 올릴 필요는 없습니다.
아래 조건에 해당하면 지금 테스트합니다.
- TypeScript 버전을 자주 따라가는 팀
- Node ESM, bundler, modern web platform API를 적극 활용하는 팀
- TS 7 네이티브 포트 전환을 미리 대비하고 싶은 팀
- 대형 모노레포에서 타입 체크 성능과 안정성을 중요하게 보는 팀
레거시 tsconfig 의존성이 강하거나 오래된 import 패턴이 많다면 전면 업그레이드 전에 경고 정리와 설정 청소를 먼저 합니다.
마무리
TypeScript 6.0 RC는 현대 JavaScript 표준에 타입을 맞추고, TypeScript 7 네이티브 전환을 위한 정리 작업을 시작합니다.
실무에서 기억할 항목은 세 가지입니다.
- 6.0은 TS 7 전환 준비 버전입니다.
- deprecated 경고는 곧 제거될 가능성이 큽니다.
- 지금 미리
tsconfig, import 문법, 빌드 스크립트를 점검하면 다음 업그레이드가 훨씬 쉬워집니다.
정식 릴리스가 나오면 RC와의 차이를 다시 정리하겠습니다. 그전까지는 공식 RC 글과 Beta 글을 기준으로 프로젝트에 남은 설정 부채부터 확인합니다.