Como executar

Como executar TypeScript

Trilha de TypeScript →

TypeScript é JavaScript com tipos. Os arquivos terminam em .ts.

Testar sem instalar nada

Abra o TypeScript Playground, cole o código e clique em Run. A saída de console.log aparece na aba Logs. O playground também aponta os erros de tipo enquanto você digita.

Instalar

O TypeScript roda no Node.js 22.18 ou mais recente, que executa os arquivos .ts sem instalar o compilador TypeScript. Instale o Node seguindo o guia de JavaScript: os passos são os mesmos (instalador, WinGet, nvm ou NodeSource). Depois, confira:

node --version

Para ver os erros de tipo sem instalar nada, use o TypeScript Playground.

Executar um arquivo

Exemplo básico

Salve o código como basic.ts. As anotações string e number indicam os tipos das variáveis e dos parâmetros. A função retorna uma mensagem do tipo string. Este exemplo também pode ser colado no TypeScript Playground.

const userName: string = 'Ana';
const age: number = 25;

function greet(personName: string, personAge: number): string {
  return `Olá, ${personName}! Você tem ${personAge} anos.`;
}

console.log(greet(userName, age));

Na pasta do arquivo, execute:

node basic.ts

Saída esperada:

Olá, Ana! Você tem 25 anos.

Responder um quiz de programação

Salve o programa como main.ts. O programa faz três perguntas e conta os acertos. O tipo Question define os dados de cada pergunta; trim e toLowerCase normalizam a resposta. Uma resposta vazia conta como erro. Requer Node 22.18 ou mais recente.

import { createInterface } from 'node:readline/promises';
import { stdin, stdout } from 'node:process';

type Question = { prompt: string; answer: string };
const questions: Question[] = [
  { prompt: 'Quanto é 2 + 3?', answer: '5' },
  { prompt: 'Qual extensão identifica um arquivo TypeScript?', answer: '.ts' },
  { prompt: 'Qual palavra declara uma constante em JavaScript?', answer: 'const' },
];
const terminal = createInterface({ input: stdin, output: stdout });
let score = 0;

try {
  for (const question of questions) {
    console.log(question.prompt);
    const answer: string = await terminal.question('');
    if (answer.trim().toLowerCase() === question.answer) {
      score++;
      console.log('Correto!');
    } else {
      console.log(`Resposta esperada: ${question.answer}`);
    }
  }
  console.log(`Pontuação: ${score}/${questions.length}`);
} catch {
  console.error('Não foi possível ler a resposta.');
  process.exitCode = 1;
} finally {
  terminal.close();
}

Na pasta do arquivo, execute:

node main.ts

Uma interação no terminal será:

Quanto é 2 + 3?
5
Correto!
Qual extensão identifica um arquivo TypeScript?
.ts
Correto!
Qual palavra declara uma constante em JavaScript?
const
Correto!
Pontuação: 3/3

As linhas com os valores das respostas são digitadas por você. Pressione Enter após cada resposta. As demais linhas são a saída do programa.

O Node executa os tipos apagáveis, mas não faz checagem de tipos. O exemplo usa módulos do Node e deve ser executado no terminal, não no TypeScript Playground.

Quando o exemplo é só um trecho

Salve as linhas num arquivo .ts e rode com node. Se o trecho usa um tipo ou função definido em outra parte da lição, copie essa parte para o mesmo arquivo.

Erros comuns

  • ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX: enum, namespace e parâmetros com public/private no construtor não rodam com node main.ts, porque o Node só aceita a sintaxe que dá para apagar. Use o playground ou compile com tsc (sem --noEmit) e rode o .js gerado.
  • Erro de tipo não impede o node de rodar: confira com npx --package typescript tsc --noEmit main.ts (baixa o compilador na hora).
  • Versões do Node anteriores à 22.18 não rodam .ts direto: atualize para a LTS.