You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If we could use this to power typed linting, that'd be great for users. Type checking performance is the bottleneck for the vast majority of correctly configured lint rules that use typescript-eslint.
We believe there are currently at least three major difficulties with typescript-eslint using tsgo in 2025:
tsgo is not stable and is many months away from being stable. It won't likely be the primary stable version of TypeScript within the next ~1-2 major versions of typescript-eslint.
ESLint rules in and out of typescript-eslint still rely on the JS-land AST, so even if we had a stable async parser, there's design work to be done communicating AST nodes and type information back from Go/WASM land to JS-land
So, although we'd very much like to be 10x faster (!!), it will take a lot of design exploration and work.
If you'd like to work on this, please go ahead. Seeing your experimentation will help inform how typescript-eslint can adopt faster typed linting in the future. 🚀
Additional Info
If you're coming here because your typed linting is slow, please go through our typed linting performance troubleshooting guide: https://typescript-eslint.io/troubleshooting/typed-linting/performance. Properly configured linting should not be significantly slower than type checking.
Before You File a Proposal Please Confirm You Have Done The Following...
Relevant Package
typescript-estree
My proposal is suitable for this project
Description
TypeScript is getting ported to Go! It's going to be 10x faster! Blazing fast! Speed! 🔥 ⚡
https://devblogs.microsoft.com/typescript/typescript-native-port/
If we could use this to power typed linting, that'd be great for users. Type checking performance is the bottleneck for the vast majority of correctly configured lint rules that use typescript-eslint.
We believe there are currently at least three major difficulties with typescript-eslint using tsgo in 2025:
It's very likely that tsgo will be consumed via native binding APIs (WASM), and so will almost certainly be asynchronoustypescript-eslint could in theory use something likesynckitbut that presents data serialization difficultiesSo, although we'd very much like to be 10x faster (!!), it will take a lot of design exploration and work.
If you'd like to work on this, please go ahead. Seeing your experimentation will help inform how typescript-eslint can adopt faster typed linting in the future. 🚀
Additional Info
If you're coming here because your typed linting is slow, please go through our typed linting performance troubleshooting guide: https://typescript-eslint.io/troubleshooting/typed-linting/performance. Properly configured linting should not be significantly slower than type checking.
💖