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.
- Passo 1: Atualize para o TypeScript 5.9 para se beneficiar das
otimizações recentes. - Passo 2: Identifique onde a inferência de tipos é mais profunda
e considere modularizar seus routers. - Passo 3: Implemente limitação de requisições e proteção contra
bots com soluções como ArcJet. - 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.