tsx para TypeScript: guia completo com exemplos práticos
1. O que é e para que serve
tsx é um runner moderno e de alto desempenho para TypeScript e ESM (ECMAScript Modules) que permite executar arquivos .ts, .tsx e .mts diretamente, sem necessidade de compilação prévia para JavaScript. Construído sobre o esbuild (um bundler ultrarrápido em Go), o tsx oferece uma execução praticamente instantânea de código TypeScript, tornando-se a ferramenta ideal para desenvolvimento, prototipagem, criação de scripts e testes.
Para que serve o tsx? Tradicionalmente, para executar arquivos TypeScript é necessário um processo de duas etapas: primeiro compilar o código com tsc (TypeScript Compiler) e depois executar o JavaScript resultante com Node.js. Isso torna as iterações de desenvolvimento mais lentas. O tsx resolve esse problema unindo compilação e execução em uma única etapa. Ele processa automaticamente a sintaxe TypeScript, módulos ESM, JSX e até mesmo a resolução de node_modules. Em resumo, o tsx é um substituto para o ts-node, porém muito mais rápido e moderno.
Principais vantagens do tsx em relação a alternativas: velocidade (usa o esbuild, que é de 10 a 100 vezes mais rápido que o tsc), suporte nativo a ESM (sem necessidade de configurar tsconfig.json para módulos), detecção automática da configuração TypeScript e suporte integrado ao modo --watch. O tsx é perfeito para: criar utilitários de linha de comando em TypeScript, executar testes (Jest, Vitest), desenvolver scripts de automação, prototipagem rápida e aprendizado de TypeScript.
2. Instalação
O tsx é distribuído via npm (Node Package Manager) e pode ser instalado globalmente ou localmente em um projeto. A instalação local é recomendada para isolar as dependências do projeto.
Instalação local (recomendada):
npm install --save-dev tsx
Ou usando yarn:
yarn add --dev tsx
Ou pnpm:
pnpm add --save-dev tsx
Instalação global (para acesso rápido de qualquer lugar):
npm install -g tsx
Verificando a instalação:
npx tsx --version
Após a instalação, você pode executar arquivos TypeScript com o comando npx tsx nome_do_arquivo.ts (instalação local) ou tsx nome_do_arquivo.ts (instalação global).
Importante: O tsx requer Node.js versão 18 ou superior. Para trabalhar com ESM, certifique-se de que seu package.json tenha o campo "type": "module" ou use a extensão .mts para seus arquivos.
3. Início rápido — exemplo mínimo funcional
Crie um arquivo chamado hello.ts com o seguinte conteúdo:
// hello.ts
const greet = (name: string): string => {
return `Olá, ${name}! Bem-vindo ao mundo do tsx!`;
};
const userName: string = "PythonLib";
console.log(greet(userName));
// Usando recursos modernos do JS
const numbers: number[] = [1, 2, 3, 4, 5];
const doubled = numbers.map((n) => n * 2);
console.log("Números dobrados:", doubled);
// Código assíncrono
const fetchData = async (): Promise => {
const data = await Promise.resolve({ id: 1, name: "Exemplo" });
console.log("Dados assíncronos:", data);
};
fetchData();
Execute o arquivo com o comando:
npx tsx hello.ts
Saída esperada:
Olá, PythonLib! Bem-vindo ao mundo do tsx!
Números dobrados: [ 2, 4, 6, 8, 10 ]
Dados assíncronos: { id: 1, name: 'Exemplo' }
Este exemplo demonstra o funcionamento básico do tsx: ele compila automaticamente TypeScript para JavaScript, suporta
Também na biblioteca
Rate Limiting em JavaScript (Node.js): Guia Completo da Biblioteca express-rate-limit
Planejador de Tarefas em C# (.NET): Quartz.NET, Hangfire e Coravel
Geração de PDF em Go: visão geral das bibliotecas e exemplos de código