Skip to main content

Command Palette

Search for a command to run...

Open-sourcing the new TypeScript type checker

Updated
3 min read

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

한국의 학벌에 대한 생각

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

Apr 3, 20261 min read

인간 지능에 대한 메모장

최종 업데이트: 2026/03/15 지능의 유전 현재 인류 기준으로, 고지능자는 고지능 유전자가 많이 겹친 사람이다. 지능의 유전엔 X 염색체가 매우 중요한 역할을 한다. 그리고 이게 남자와 여자의 지능 분포 차이를 만든다. 극상위권에 여자가 거의 없는 이유가 이것이다. 고지능 X 염색체가 여자한테서 발현되려면 2개가 있어야 한다. 이는 인간의 생

Mar 15, 20262 min read

Ai 코딩 팁 2 (한국어)

발표 자료: https://gamma.app/docs/AI--2a52e7tk3eb1ch1 AI 활용법 관련해서 간단하게 발표를 했다. 발표 자료 앞쪽은 전에 블로그에 올린 글이랑 같은 내용이다. 이 글에서는 기존 글에서 다루지 않은 내용들을 다루겠다. 에러 메시지 및 로깅 구체적 타입 및 스키마 활용 any 타입은 사람에게도 위험하지만, AI에게는 더 위험하다. 마찬가지로, JSON.parse처럼 아무 제약 없는 파싱 느슨한 인터페이스 ...

Jan 30, 20265 min read

kdy1: The way I think

233 posts