zerovoids.dev
zerovoids.dev

Ø NEWS

컴파일러 · 오픈소스

TypeScript 7.0 정식 출시

Go로 새로 만든 TypeScript 7.0이 나왔다. 풀빌드가 8~12배 빨라졌지만, TypeScript를 임베드하는 도구들은 아직 7.0을 지원하지 않는다.

키워드typescriptbuild-toolscompilerdxgo

TypeScript 타입체크가 크게 빨라졌다. 마이크로소프트가 컴파일러를 Go로 새로 써 7월 8일 7.0으로 내놨는데, 풀빌드가 보통 8~12배, VS Code에서 오류 파일을 여는 지연은 17.5초에서 1.3초 아래로 줄었다. 6월 18일 RC를 거쳤고, 그동안 따로 배포되던 네이티브 프리뷰가 정규 typescript npm 패키지에 들어왔다.

빨라진 건 두 가지 덕분이다. JavaScript 대신 네이티브 코드로 돌고, 여러 코어를 함께 쓴다. 코드가 많을수록 차이가 크고, 에디터 응답성(언어 서비스)도 같이 빨라진다. 메모리도 프로젝트에 따라 최대 26%까지 줄었다.

7.0은 네이티브로 새로 쓴 라인이다. 버전이 6(JavaScript 기반)과 7(네이티브) 두 갈래로 갈라졌고, 도구들이 7.0에 대응할 때까지 6.x가 함께 유지된다.

아직 안 되는 것

대신 걸리는 게 있다. 7.0에는 안정적인 programmatic API가 아직 없다. TypeScript를 자체 컴파일러나 언어 서비스에 임베드해 쓰는 도구들이 여기서 막힌다. 마이크로소프트는 Volar를 예로 들었고, typescript-eslintts-morph처럼 TS API를 직접 부르는 도구도 여기 해당한다. 그래서 이들은 당분간 6.x에 남는다. 이 API는 이후 버전에 넣을 계획이다.

안정 API가 없어, TypeScript를 임베드하는 도구들은 아직 7.0에서 돌지 않는다.

언제 써도 되나

지금 써도 되는지는 스택에 달렸다. 린터나 프레임워크 타입체크 없이 빌드와 CI만 돌리는 경우엔 바로 속도를 볼 수 있다. 그 도구들이 필수인 보통의 앱이라면, 도구들이 대응할 때까지 기다리는 편이 낫다. 속도 향상은 큰 프로젝트를 통째로 빌드할 때 가장 크고, 작은 프로젝트에선 차이가 그보다 작다.

References