Não sei onde devo instalar o TypeScript. Na aula de Introdução ao TrypeScript o professor parece instalar no diretório de trabalho (chamado “mini-projeto”). Foi o que eu fiz e deu tudo certo com os exemplos da aula.
Mas olhando a apostila, diz que “Vamos precisar ter instalado de maneira global o
TypeScript (…) A seguir vamos criar um diretório onde vamos armazenar o nosso projeto”
Quando fala em instalar de “maneira global”, significa em um diretório tipo C:/Users/seuNomeDeUsuário?? Tem um lugar certo pra instalar o TypeScript? Eu estou muito confusa com o conteúdo dessa aula…
Quando você instala no diretório do projeto, usando
npm i typescript
o pacote vai ser tratado como uma dependência daquele projeto apenas, o que é a prática mais comum. Dessa forma quando estiver iniciado e configurado o projeto, você vai transpilar (traduzir Typescript pra Javascript) usando
npx tsc
(npx é um “executador” de pacotes que o Node oferece)
Instalando o Typescript de forma global no computador, usando
npm i -g typescript
o pacote será instalado em um diretório padrão do usuário do computador que o Node cria, e vai estar disponível para uso a partir de qualquer local, podendo assim usar o comando tsc direto sem precisar da ajuda do npx e em qualquer projeto. Global é vantagem para estudos ou testes por exemplo, mas a versão do Typescript será global também, o que é desvantagem pra quem trabalha com vários projetos ou de forma colaborativa e precisa definir a versão por projeto.
A prática recomendada no próprio site oficial é a instalação por projeto, não global.
Uma sugestão para praticar Typescript ou executar de forma rápida os arquivos .ts sem precisar ficar transpilando toda hora, é usar o pacote ts-node e aí sim vale a pena instalar global, pra não jogar ele dentro do projeto (já que é uma ferramenta para ser utilizada enquanto se desenvolve o software) e poder utilizar em qualquer projeto:
npm i -g ts-node
Assim ele roda o Typescript diretamente, ainda que tenha um simples arquivo no diretório, exemplo: index.ts ou teste.ts, mesmo sem configuração, inicialização ou transpilação. Inclusive, bem útil para praticar a lingagem em si:
Isso mesmo. Ele faz o processo de transpilação + execução com o Node, mas tudo “em background”, e não mexe no diretório atual, não cria arquivos .js.
Vamos supor que você está aprendendo a linguagem ou viu um código e quer testa-lo. Basta criar um teste.ts em algum diretório no VS Code e digitar o código. Aí na janela do terminal ali embaixo, rodar com ts-node teste.ts e já vê o resultado, sem precisar preparar o diretório para o Typescript, aquele processo de instalar o pacote, transpilar, rodar o js com Node… Mesmo se estiver usando a prática do Typescript instalado de forma global, cada alteração no arquivo ts vai precisar transpilar pra js pro Node rodar. Node não roda Typescript de forma nativa.
Sendo assim esse pacote ts-node ajuda durante o desenvolvimento, enquanto está aprendendo, quando quer rodar códigos toda hora ou testar algum código rapidamente…
Mas lembre-se de não deixar que essa facilidade atrapalhe a aprender o caminho convencional de instalação do Typescript no projeto, configuração, transpilação e execução porque, no final das contas, em um projeto real vai precisar fazer tudo isso de qualquer forma.