Configurando o projeto
Podemos executar códigos desenvolvidos em TypeScript a partir de qualquer pasta. No entanto, para termos uma melhor organização, vamos trabalhar com projetos em pastas.
Você pode criar uma pasta nova pela interface gráfica ou, se estiver usando o Windows, usar a linha de comando:
mkdir projeto
Em seguida, vamos acessar a pasta:
cd projeto
E, finalmente, iniciar o projeto:
npm init
A flag -y
pode ser usada junto ao comando anterior, npm init -y
, para que todas as respostas sejam yes
. Esse comando criará um arquivo package.json
, com as configurações do nosso projeto, incluindo as dependências.
Adicionando TypeScript ao projeto
Para adicionarmos TypeScript ao projeto, precisamos executar o seguinte comando dentro da pasta:
npm i -D typescript
O comando a seguir instalará as dependências necessárias para a transpilação do TypeScript para JavaScript.
Transpilando o código
Para converter um código escrito em TS para JS, executamos o seguinte comando:
npx tsc meuprograma.ts
Note que, ao final dessa execução, será criado um arquivo meuprograma.js
. Se você abrir esse novo arquivo, verá que a sintaxe em JavaScript está um pouco diferente. Essa característica está relacionada com a versão do ECMAScript (nome oficial do JavaScript) usada para a conversão.
Para executar o programa, de fato, precisamos executar:
node meuprograma.js
Executando diretamente o código
Para facilitar o processo de execução de códigos escritos em TypeScript, podemos adotar uma outra estratégia, usando a biblioteca ts-node
. Antes, porém, precisamos fazer a sua instalação:
npm i ts-node
Assim, quando desejarmos executar um código escrito em TypeScript, precisaremos apenas executar a seguinte linha de comando:
npx ts-node meuprograma.ts
Criando o arquivo de configuração do TypeScript
Para executarmos nosso projeto, precisamos criar um arquivo de configuração na raiz, chamado tsconfig.json
, com o seguinte conteúdo:
{
"compilerOptions": {
"module": "ES6",
"target": "ES6",
"esModuleInterop": true,
"moduleResolution": "node",
"strict": true
},
"include": ["*.ts"]
}