O que é ts-node e para que serve?
\n\nts-node é um motor TypeScript para Node.js que permite executar arquivos TypeScript diretamente, sem compilação prévia para JavaScript. Ele funciona como um REPL (Read-Eval-Print Loop) e como uma ferramenta de linha de comando, proporcionando uma integração perfeita do TypeScript no ecossistema Node.js.
\n\nPrincipais cenários de uso:
\n- \n
- Desenvolvimento rápido e prototipagem — não é necessário esperar pela compilação a cada alteração \n
- Execução de scripts — execução de arquivos TypeScript em produção (com cuidado) \n
- Testes — execução de testes escritos em TypeScript \n
- Desenvolvimento interativo — modo REPL para experimentos com TypeScript \n
- Migração de projetos — transição gradual de JavaScript para TypeScript \n
Diferentemente da abordagem padrão (compilação via tsc e execução via node), o ts-node torna o processo de desenvolvimento mais suave e rápido.
Instalação do ts-node
\n\nA instalação é feita através do npm (gerenciador de pacotes do Node.js). Para desenvolvedores Python: é análogo ao pip install.
# Instalação global (disponível em qualquer lugar)\nnpm install -g ts-node\n\n# Instalação local (recomendada para projetos)\nnpm install --save-dev ts-node\n\n# Instalação junto com TypeScript (se ainda não estiver instalado)\nnpm install --save-dev ts-node typescript\n\n# Para trabalhar com versões específicas do TypeScript\nnpm install --save-dev ts-node@10.9.2 typescript@5.3.3\n\nApós a instalação, verifique a versão:
\nts-node --version\n# Saída: v10.9.2\n\nInício rápido com exemplo de código
\n\nCrie um arquivo hello.ts:
// hello.ts\ninterface Greeting {\n name: string;\n age: number;\n}\n\nfunction greet(person: Greeting): string {\n return `Olá, ${person.name}! Você tem ${person.age} anos.`;\n}\n\nconst user: Greeting = { name: "Alexei", age: 30 };\nconsole.log(greet(user));\n\nExecute sem compilação:
\nts-node hello.ts\n# Saída: Olá, Alexei! Você tem 30 anos.\n\nPara comparação, a forma normal exigiria duas etapas:
\ntsc hello.ts # compilação para hello.js\nnode hello.js # execução do arquivo compilado\n\nPrincipais métodos e funções do ts-node
\n\n1. ts-node [file.ts] — Execução básica de arquivo
\nDescrição: Comando principal para executar um arquivo TypeScript. O ts-node compila e executa o código automaticamente.
\nParâmetros:
\n- \n
file.ts— caminho para o arquivo TypeScript \n --projectou-P— caminho para o tsconfig.json \n --transpile-only— apenas transpilação (mais rápido, mas sem verificação de tipos) \n
Exemplo:
\n# Execução normal\nts-node app.ts\n\n# Com especificação de configuração\nts-node --project tsconfig.prod.json app.ts\n\n# Apenas transpilação (mais rápido)\nts-node --transpile-only app.ts\n\n2. ts-node --eval — Execução de código a partir de string
\nDescrição: Permite executar código TypeScript passado como string, sem criar um arquivo.
\nParâmetros:
\n- \n
-eou--eval— string com código TypeScript \n -pou--print— exibir o resultado da execução \n
Exemplo:
\n# Expressão simples\nts-node -e "console.log('Olá do ts-node!')"\n\n# Usando recursos do TypeScript\nts-node -e "\ninterface User { name: string }\nconst user: User = { name: 'Maria' };\nconsole.log(user.name);\n"\n\n# Com exibição do resultado\nts-node -p "1 + 2"\n\n3. ts-node --compiler-options
Também na biblioteca
ORM para Swift (iOS/macOS): comparação e exemplos de uso
Bibliotecas GraphQL para Kotlin: uma visão geral completa para desenvolvedores backend
Trabalho com datas em Go (Golang): bibliotecas time, carbon e now
Parsing de HTML em Java: Jsoup, HtmlUnit e outras ferramentas