tsgolint v7 lança linting com consciência de tipos escrito em Go
O tsgolint v7 executa em Go as regras com consciência de tipos do typescript-eslint. Ele cobre 59 das 61 regras, e as duas alegações de velocidade do próprio projeto não batem.
4 min de leitura

Em números
- typescript-eslint type-aware rules implemented
- 59 of 61
- speedup over ESLint measured in the Oxc project's own blog post
- 12-18x
- speedup the same project's README claims for the same tool
- 20-40x
- typeorm
- 18x
- microsoft/typescript
- 14x
- vuejs/core
- 13x
- microsoft/vscode
- 12x
O linting com consciência de tipos (type-aware linting) para TypeScript agora tem uma implementação estável escrita em Go. O projeto Oxc anunciou o tsgolint v7.0.2000 em 22 de julho de 2026, e a reportagem do InfoQ de 11 de setembro de 2026 lhe deu atenção mais ampla. Ele cobre 59 das 61 regras com consciência de tipos do typescript-eslint.
A distinção importa mais do que parece. A maioria das regras de lint só precisa ler a forma do seu código: um ponto e vírgula faltando, uma variável sem uso. Regras com consciência de tipos precisam saber o que as coisas de fato são. Perguntar se uma promise chega a receber um await significa perguntar ao verificador de tipos, e o verificador de tipos é a parte lenta.
É por isso que essas regras têm a fama de fazer uma rodada de lint levar minutos. O tsgolint não reimplementa o verificador de tipos para evitar esse custo. Ele constrói programas TypeScript reais sobre o typescript-go, que o README no GitHub do projeto descreve como "a implementação de TypeScript da Microsoft", e mira o TypeScript 7, de codinome Project Corsa.
Os próprios números do projeto não batem
Aqui o relato fica desconfortável, e vale mais dizer isso com franqueza do que escolher o número mais simpático.
O post do blog do Oxc traz tempos detalhados em um Apple M4 Pro de 12 núcleos, comparando com ESLint mais typescript-eslint em configurações equivalentes. Eles mostram uma melhoria de 12 a 18 vezes: microsoft/vscode cai de 83,2 segundos para 6,96 segundos, microsoft/typescript de 27,2 para 1,94, typeorm de 13,2 para 0,75 e vuejs/core de 12,3 para 0,95.
O próprio README do projeto resume seus benchmarks de outro jeito. Ele relata de 22 a 34 vezes nos mesmos quatro repositórios e afirma que a ferramenta é "20-40x mais rápida que ESLint + typescript-eslint em repositórios grandes".
As duas alegações vêm do mesmo projeto, sobre a mesma ferramenta, contra a mesma comparação. A reportagem do InfoQ cita a faixa mais baixa. Não vimos uma explicação para a diferença, e nenhum dos dois números foi reproduzido de forma independente. Trate o 12-18x do blog como o número com as contas visíveis por trás, e faça o benchmark do seu próprio repositório antes de planejar com qualquer um dos dois.
O blog explica, sim, de onde vêm os ganhos: "caminhos rápidos que evitam consultas caras ao verificador de tipos quando a sintaxe já dá a resposta". Uma regra, diz ele, ficou "35 vezes mais rápida no VS Code".
Versão 7 de um projeto que nunca teve uma versão 1
O tsgolint pulou direto de uma linha experimental 0.x para uma v7 estável, o que parece um salto de marketing e não é.
A versão agora acompanha o compilador que ela embute. Em v7.0.2000, o 7.0.2 é a versão do TypeScript, e o contador final é o número de patch do próprio tsgolint, que zera sempre que a versão do TypeScript muda. O InfoQ cita o raciocínio: "o tsgolint agora é versionado em relação ao compilador que embute". O efeito prático é que a string de versão diz qual verificador de tipos você está recebendo.
| Detalhe | |
|---|---|
| Lançamento estável | v7.0.2000, 22 de julho de 2026 |
| TypeScript acompanhado | v7.0.2 |
| Regras implementadas | 59 de 61, acima das 43 do alfa de dezembro |
| TypeScript mínimo | 7.0 |
| Instalação | pnpm add -D oxlint oxlint-tsgolint@7 |
| Execução | pnpm oxlint --type-aware |
O código começou como um protótipo dentro da organização typescript-eslint, criado pelo colaborador auvred, e o fork do Oxc o leva adiante com a permissão desse autor.
O que isso significa para os desenvolvedores
A restrição a verificar primeiro é o TypeScript 7. O linting com consciência de tipos exige aqui a 7.0 ou mais recente, e o InfoQ observa que algumas opções legadas do tsconfig e alguns recursos do TypeScript 6 ainda não têm suporte. Se o seu build está no TypeScript 6, isto é algo para planejar, não para adotar hoje à tarde.
Se você já está na 7, o experimento honesto é uma única execução cronometrada. Instale os dois pacotes, rode pnpm oxlint --type-aware no seu repositório e compare com a sua invocação atual do ESLint. O seu próprio número vale mais do que a tabela de benchmarks de qualquer pessoa, e este é um caso em que os números publicados nem sequer são consistentes entre si.
As duas regras que faltam importam mais do que a contagem sugere. Verifique se alguma das duas que não entraram é uma de que a sua equipe depende. Uma suíte de lint que roda 12 vezes mais rápido, mas descarta em silêncio a regra que pega a sua classe de bugs, é uma troca ruim.
Há aqui um padrão mais amplo que vale notar. Reescrever ferramentas de desenvolvimento em uma linguagem compilada por velocidade virou rotina neste ano. O Debian Code Search abandonou sua última dependência de C em favor de Go puro e igualou a versão em C. O autor do linker mold está reescrevendo-o de C++ para Rust. O que diferencia o tsgolint é que ele não reescreveu a parte difícil. Ele embutiu o próprio compilador da Microsoft e otimizou ao redor dele, o que é um jeito bem mais barato de estar correto.
Fontes
Artigos relacionados

Reescrita do mold em Rust quer ser o linker padrão do Linux
O mold faz a ligação 4,9 vezes mais rápido que o LLVM lld. Seu autor o está reescrevendo em Rust e quer que as distribuições o instalem como /usr/bin/ld.

GNU Automake 1.19 corrige um bug de 14 anos no dist
O GNU Automake 1.19, sua primeira versão em 15 meses, corrige um bug de 14 anos que quebrava comandos simultâneos como make dist-bzip2 dist-xz.

LLVM debate compilar o ClangIR por omissão
Uma RFC do LLVM propõe compilar o ClangIR dentro do Clang por omissão. Ninguém o usaria sem uma opção, mas há estimativas que duplicam os tempos de compilação.