Pular para o conteúdo
TypeScript

Problemas de performance com TypeScript e tRPC

a performance do TypeScript impacta projetos grandes com inferência profunda de tipos e como a comunidade está lidando com isso.

Por que isso é importante

Problemas de performance com TypeScript e tRPC. a performance do TypeScript impacta projetos grandes com inferência profunda de tipos e como a comunidade está lidando com isso.

O amor pelo TypeScript vem com um preço

TypeScript é incrível pra segurança de tipos e experiência de desenvolvimento, mas
conforme os projetos crescem — principalmente com ferramentas como tRPC — conhecer suas
limitações de performance vira questão crítica.

O problema não é o tempo de execução

Diferente do que muita gente imagina, a lentidão não vem do runtime como no Node ou Bun,
mas sim no Language Server Protocol (LSP) do TypeScript — o coração por trás da
experiência de autocomplete, erros e refactors em tempo real no editor.

tRPC: o sonho que pesa

Com tRPC, front-end e back-end compartilham tipos automaticamente graças à inferência
nativa do TypeScript, mas essa mágica esbarra em limites reais de performance conforme a
base cresce.

Como a inferência extrema afeta tudo

Cada vez que você altera um tipo num endpoint, o TypeScript precisa reinferir toda a
cadeia: input, retorno, validações, consumidor no front — e isso vira um problema de
complexidade ao estilo O(n²) numa base com centenas de rotas.

Atenção

O uso intensivo de inferência pode causar travamentos frequentes do tsserver, forçando
o reinício manual do servidor de linguagem e impactando direto a produtividade do time.

Uma auditoria de verdade

Pra investigar a fundo, o time contratou um especialista em performance de TypeScript. O
objetivo: entender como o tRPC burla os limites do compilador e por que isso afeta tantas
ferramentas modernas baseadas em inferência.

O que foi descoberto

A investigação revelou gargalos profundos no design interno do tsserver — problemas que
agora começaram a ser resolvidos com mudanças no próprio compilador, já disponíveis no
beta do TypeScript 5.9.

Boas notícias

As melhorias no TypeScript 5.9 prometem ganhos grandes de performance na validação e
inferência de tipos profundos no editor, mesmo em bases grandes como as do T3Stack.

Mas e a segurança das APIs?

Fora a performance, surge outro desafio: proteger endpoints que usam IA ou recursos
sensíveis de consumo — principalmente com bots tentando explorar esses pontos gerando
gastos.

Atenção com bots e IA

Se seus endpoints de IA estão desprotegidos, bots podem gerar milhares de requisições
e consumir recursos muito caros — prejudicando financeiramente sua aplicação.

Conheça a ArcJet

ArcJet foi criada por devs pra devs. Em vez de painéis distantes do código, ela se
integra direto ao ambiente de desenvolvimento, trazendo proteção de endpoints, limites de
taxa e validação local via WebAssembly.

  1. Passo 1: Atualize para o TypeScript 5.9 para se beneficiar das
    otimizações recentes.
  2. Passo 2: Identifique onde a inferência de tipos é mais profunda
    e considere modularizar seus routers.
  3. Passo 3: Implemente limitação de requisições e proteção contra
    bots com soluções como ArcJet.
  4. Passo 4: Monitore a saúde do tsserver regularmente usando logs
    ou ferramentas de desempenho.

Dica técnica

Evite definir tipos de retorno manualmente em funções tRPC — isso atrapalha a
inferência. Deixe o TypeScript deduzir os tipos automaticamente sempre que der.

Pra quem usa o T3Stack

Se você usa o T3Chat ou qualquer projeto baseado no T3Stack com tRPC, vale a pena aplicar
essas otimizações agora. O ganho em responsividade no editor já deve ser perceptível.

A beleza do tRPC continua

Apesar dos desafios de performance, o modelo de desenvolvimento com inferência de tipos
ponta a ponta do tRPC ainda é revolucionário — e com os ajustes certos, agora ele também
é viável em escala.

Checklist de Implementação

  • Atualizou para TypeScript 5.9 Beta
  • Modularizou routers tRPC pesados
  • Aplicou limitação de taxa com ArcJet
  • Evitou tipos manuais em retornos
  • Testou a performance do tsserver localmente

Perguntas frequentes

Como a inferência extrema afeta tudo

Cada vez que você altera um tipo num endpoint, o TypeScript precisa reinferir toda a cadeia: input, retorno, validações, consumidor no front — e isso vira um problema de complexidade ao estilo O(n²) numa base com centenas de rotas.

O que foi descoberto

A investigação revelou gargalos profundos no design interno do tsserver — problemas que agora começaram a ser resolvidos com mudanças no próprio compilador, já disponíveis no beta do TypeScript 5.9.

Mas e a segurança das APIs?

Fora a performance, surge outro desafio: proteger endpoints que usam IA ou recursos sensíveis de consumo — principalmente com bots tentando explorar esses pontos gerando gastos.