Skip to main content

Command Palette

Search for a command to run...

Open-sourcing the new TypeScript type checker

Published
3 min readView as Markdown

For context, I'm the creator of the swc project and I previously announced that I would use Go for the new TypeScript type checker.

I'm announcing two things about the new TypeScript type checker.

I'll switch back to the Rust version

I was working on the Rust-based TypeScript type checker before switching to Go. But I decided to switch back to Rust. There are several reasons for this.

The source code diverges anyway

While working on the Go version, I found that the code was diverging from the official TypeScript compiler source code. Therefore, I would have to do a lot of work on each release anyway. Of course, updating the Go version would be easier as the code is similar, but updating the Rust-based one is not a hard task for me anyway.

With the Go version, I had to port needless parts too.

I found myself porting functions related to e.g. emitting JavaScript code, but it’s not going to be used. But as the similarity of the code base matters, I couldn't skip them.

I'm not sure how fast the Go version would be

As it's based on codegen, there is an enormous amount of inefficient code. But the Rust version is different. It's not highly optimized, but still, it's fast.

I'll develop it as an open-source project

I'll release the source code as open-source, and the license will be Apache 2.0. This decision also has several reasons.

About monetization, I decided I don’t care.

This is the most important reason. I wanted a fair reward for my hard work, but I also agree that a fast TypeScript type checker is similar to infra, and should be open-sourced as someone said. And I concluded that this point was more important.

I want to promote swc/turbopack

As the creator of the swc project, I want to see it take the world over. The new TypeScript type checker is based on swc and it will integrate with swc smoothly.

Turbopack, a successor of Webpack, is also based on swc and it also uses the system of swc. As type checking is one of the slowest part of the development cycle, I think Turbopack can provide a gratifying developer experience.

I expect a decent amount of contributions

There are lots of people suffering from the slowness of the official TypeScript type checker, especially large companies. Once it's ready, they will be able to save an enormous amount of time. I expect large companies to donate or provide developer time afterwards.

Repository: https://github.com/dudykr/stc

As a side note, this is under active development and it's far from done.

More from this blog

Labor0를 만든 이유

사람이 병목이 되는 횟수를 줄이기 AI 에이전트 세션을 많이 실행하는 것 자체는 어렵지 않다. 내가 해결하고 싶었던 문제는 세션이 늘어날 때마다 사람이 모든 진행 상황을 확인하고 관리해야 한다는 점이었다. 사람을 병목에서 완전히 빼는 게 목표는 아니다. 사람은 여전히 병목이다. 대신 사람이 개입해야 하는 횟수를 줄이고, 실제로 결정이 필요한 순간에만 사람을

Aug 22, 20265 min read

작업 기록: 자동 QA 구성

최근에 Zephyr Cloud 의 프로젝트에 자동 QA 시스템을 구성했다. 그 작업 기록이다. 원래 이런 작업은 리눅스에서 하는 게 맞다고 생각했다. 그런데 나는 계속 로컬에서 디버깅해야 했고, 개발 흐름상 맥에서 바로 돌릴 수 있어야 했다. 예전에도 자동 QA를 시도한 적은 있었지만 끝까지 제대로 굴러간 적은 없었다. 그러다가 지난주 중반쯤, “이건 로

May 13, 20263 min read

한국의 학벌에 대한 생각

내 블로그의 제목이 kdy1: The way I think 인만큼 앞으로는 내 생각을 더 자주 올리려고 한다. 한국 기준으로, 학벌은 사람을 볼 때 꽤나 유용한 지표이지만, 절대적이지는 않다. 경험적인 얘기일 뿐이지만, 성균관대학교 자퇴생으로서 느낀 것들이 몇 가지 있다. 대학까지 간 사람의 학벌은 학습 능력 x 성실함 에 대체로 비례한다. 그래서 의미가

Apr 3, 20261 min read

kdy1: The way I think

303 posts