NodeJS suporte a Typescript
O projeto Node.js agora oferece suporte a TypeScript, embora ainda sob um sinalizador "experimental". Marco Ippolito, membro do Comitê de Direção Técnica, ressaltou que essa adição é "fundamental para avançar o ecossistema" e que os usuários pediram essa funcionalidade repetidamente em pesquisas.
Ippolito comentou sobre um pull request recente, enfatizando que "os usuários desejam a capacidade de executar node foo.ts sem depender de pacotes externos ou carregadores". O sinalizador experimental, chamado --experimental-strip-types, tem como objetivo remover os tipos do código, convertendo TypeScript em JavaScript.
No entanto, há algumas limitações a serem consideradas. Apenas as anotações de tipo são removidas; outros recursos do TypeScript, como enums e namespaces, não são suportados. Além disso, as configurações do tsconfig.json são ignoradas, e os mapas de origem, que ajudam na depuração de código minificado, não são gerados. Para desencorajar a publicação de pacotes escritos em TypeScript, os arquivos .ts dentro do diretório node_modules não são compatíveis.
Embora isso possa parecer uma abordagem limitada, o suporte é intencionalmente leve, de acordo com a documentação. Para quem busca suporte completo, a recomendação é utilizar pacotes de terceiros, como o tsx.
TypeScript, uma linguagem fortemente tipada que compila para JavaScript, tem se tornado cada vez mais popular, especialmente para aplicações em ambientes de execução como o V8, que é usado pelo Node.js. Pesquisas frequentemente posicionam TypeScript entre as dez principais linguagens de programação, com crescimento contínuo em sua adoção. A natureza dinâmica do JavaScript pode levar a erros, enquanto TypeScript, com sua verificação de tipo, ajuda a detectar problemas antes da implantação — embora o suporte leve do Node.js não realize essa verificação.
O Node.js, criado por Ryan Dahl e lançado em 2009, continua sendo o runtime JavaScript mais popular, mesmo com a concorrência de projetos como Deno, que utiliza TypeScript como linguagem principal. O Deno oferece verificação de tipo, mas não a realiza por padrão para melhorar o desempenho, enquanto o bun trata TypeScript como uma prioridade, mas também não verifica tipos.
Embora o suporte integrado ao TypeScript no Node.js seja conveniente, ele deve ser complementado com outras ferramentas, como o compilador TypeScript, para aproveitar plenamente os benefícios da verificação de tipos e outras funcionalidades da linguagem.
Outra consideração importante é que versões futuras do TypeScript podem se desalinhar com as versões do Node.js, especialmente aquelas que seguem suporte de longo prazo.
O roteiro do Node.js, no entanto, prevê a adição de mais recursos no futuro. Ippolito mencionou que a lista de recursos do TypeScript que precisam de transformação fora do Node.js pode mudar ao longo do tempo.
Apesar das limitações, essa é uma adição significativa ao Node.js, que promete manter o projeto relevante e atualizado. Um desenvolvedor expressou seu entusiasmo: "Meu recurso favorito do Deno está finalmente chegando ao Node. Fantástico!"