Skip to content

Enhancement: Use TS 7 (tsgo / typescript-go) for type information #10940

Description

@JoshuaKGoldberg

Before You File a Proposal Please Confirm You Have Done The Following...

Relevant Package

typescript-estree

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

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:

  1. ESLint does not yet support asynchronous parsers: Change Request: allow asynchronous parser eslint/eslint#15475
  2. 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.
  3. 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.

💖

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

accepting prsGo ahead, send a pull request that resolves this issueenhancementNew feature or requestteam assignedA member of the typescript-eslint team should work on this.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions