ts-node para TypeScript: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é ts-node e para que serve?

\n\n

ts-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\n

Principais 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
\n\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.

\n\n

Instalação do ts-node

\n\n

A instalação é feita através do npm (gerenciador de pacotes do Node.js). Para desenvolvedores Python: é análogo ao pip install.

\n\n
# 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\n

Após a instalação, verifique a versão:

\n
ts-node --version\n# Saída: v10.9.2
\n\n

Início rápido com exemplo de código

\n\n

Crie um arquivo hello.ts:

\n\n
// 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\n

Execute sem compilação:

\n
ts-node hello.ts\n# Saída: Olá, Alexei! Você tem 30 anos.
\n\n

Para comparação, a forma normal exigiria duas etapas:

\n
tsc hello.ts    # compilação para hello.js\nnode hello.js   # execução do arquivo compilado
\n\n

Principais métodos e funções do ts-node

\n\n

1. ts-node [file.ts] — Execução básica de arquivo

\n

Descrição: Comando principal para executar um arquivo TypeScript. O ts-node compila e executa o código automaticamente.

\n

Parâmetros:

\n
    \n
  • file.ts — caminho para o arquivo TypeScript
  • \n
  • --project ou -P — caminho para o tsconfig.json
  • \n
  • --transpile-only — apenas transpilação (mais rápido, mas sem verificação de tipos)
  • \n
\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\n

2. ts-node --eval — Execução de código a partir de string

\n

Descrição: Permite executar código TypeScript passado como string, sem criar um arquivo.

\n

Parâmetros:

\n
    \n
  • -e ou --eval — string com código TypeScript
  • \n
  • -p ou --print — exibir o resultado da execução
  • \n
\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\n

3. ts-node --compiler-options

Recommendations