Qual versão do TypeScript está usando o Visual Studio Code? Como atualizá-lo?

111

Como posso saber qual versão do TypeScript está sendo usada no Visual Studio Code? Em particular, eu estava usando o TypeScript 1.8.10 e o VSCode 1.4.0. Primeiro atualizei o VSCode para a versão mais recente, que era 1.5.3. Mas, verificando na linha de comando, vi que minha versão do TypeScript ainda era 1.8.10. Então, eu atualizei o TypeScript da linha de comando e agora é 2.0.3.

Existe uma maneira de saber com certeza se o Visual Studio Code está usando a versão 2.0.3?

Existe um método para atualizar o Visual Studio Code que atualizará automaticamente o TypeScript para a versão mais recente lançada ou a atualização do TypeScript deve ser feita de forma independente?

Richard Fuhr
fonte
tsc --version ??
Hackerman
Eu acredito que é uma configuração de arquivo de projeto. Se você abrir o arquivo do projeto (como um arquivo .csproj) com o bloco de notas, você pode remover o elemento da versão do texto digitado que deve forçar o projeto a usar a versão mais recente instalada no PC.
Igor
@Hackerman Não, isso apenas mostra a versão global do TSC.
Fabian Lauer

Respostas:

191

O TypeScript pode ser atualizado automaticamente?

O VS Code é fornecido com uma versão estável recente do TypeScript.

- dos documentos do VS Code

Isso significa que não há como atualizar automaticamente a versão TypeScript usada pelo VS Code. No entanto, você pode substituir a versão do TypeScript que o VS Code usa, modificando as configurações do usuário ou da área de trabalho.


Qual versão do TypeScript está usando o VS Code?

Quando você abre um arquivo TypeScript, o VS Code deve exibir a versão do TypeScript na barra de status na parte inferior direita da tela:

Versão TypeScript da barra de status do código VS


Alteração da versão global do TypeScript

  1. Instale a versão do TypeScript desejada globalmente, por exemplo npm install -g [email protected]
  2. Abra as configurações do usuário do código VS ( F1> Open User Settings)
  3. Atualizar / inserir "typescript.tsdk": "{your_global_npm_path}/typescript/lib"você pode descobrir {your_global_npm_path} digitando npm root -g

Agora, todos os projetos que você abre com o VS Code usarão essa versão do TypeScript, a menos, é claro, que haja uma configuração de espaço de trabalho que a substitua.


Alteração da versão local do TypeScript

  1. Abra o projeto no VS Code
  2. Instale a versão do TypeScript desejada localmente, por exemplo npm install --save-dev [email protected]

    O --save-devirá atualizar o seu projeto package.json, adicionando a versão do TypeScript que você instalou como um devDependency.

  3. Abra as configurações do espaço de trabalho do código VS ( F1> Open Workspace Settings)

  4. Atualizar / inserir "typescript.tsdk": "./node_modules/typescript/lib"

    Agora, apenas o projeto em que você instalou esta versão do TypeScript usará essa versão do TypeScript, a instalação global será ignorada pelo VS Code neste projeto.

  5. Depois de adicionar a typescript.tsdkentrada, também é necessário usar a IU do VS Code para selecionar a nova versão:

    • Clique na versão exibida no rodapé do VS Code:

      vs rodapé de código

    • Selecione-o na IU:

      selecione a versão ts na IU


Veja também:

Fabian Lauer
fonte
3
Para sua informação, estou no Windows, tive que colocar o caminho completo para minha pasta global de módulos de nó - C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib. Você pode verificar o seu npm root -gna linha de comando. Caso contrário, provavelmente deve ser marcada como a resposta @Richard Fuhr
Cody
A adição desta configuração fez com que o código do Visual Studio desabilitasse completamente todos os recursos de linguagem de digitação. Esta não é a resposta que você está procurando.
BentOnCoding
3
@BentOnCoding Isso não desabilitará nada. Verifique se há erros de digitação no tsdkcaminho e certifique-se de que o TypeScript esteja instalado em seu repo. Além disso, 11 outras pessoas acharam isso correto o suficiente para votar positivamente ;-)
Fabian Lauer
O VS Code agora parece estar recebendo atualizações de versão do TypeScript automaticamente, então a resposta aqui pode não ser mais atual.
Mickey Segal
1
Essa configuração pode ser aplicada a uma configuração de espaço de trabalho, de forma que um projeto que visa especificamente uma versão específica possa ser configurado para permanecer assim. Além disso, NOTE não é possível direcionar as versões instaladas do MSI, pois elas não são compatíveis. Veja o site: code.visualstudio.com/docs/typescript/typescript-compiling
Itanex
19

O Visual Studio Code vem com sua própria versão estável do TypeScript, mas você pode mudar para uma versão mais recente, conforme descrito em seus documentos

O VS Code é fornecido com uma versão estável recente do TypeScript. Se você deseja usar uma versão mais recente do TypeScript, pode definir a configuração typescript.tsdk ( Arquivo > Preferências > Configurações do usuário / espaço de trabalho ) apontando para um diretório que contém o arquivo tsserver.js do TypeScript .
...
Por exemplo:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}
DAXaholic
fonte
Minha tsc
Richard Fuhr
A adição desta configuração fez com que o código do Visual Studio desabilitasse completamente todos os recursos de linguagem de digitação. Esta não é a resposta que você está procurando.
BentOnCoding
Acho que isso é descrito mais claramente aqui gist.github.com/tonysneed/bb6d442103a057578a9498f106e45ac5
Gregor Schmitz
17

Existe uma maneira de saber com certeza se o Visual Studio Code está usando a versão 2.0.3?

Abra um arquivo TypeScript no Visual Studio Code e no canto inferior direito você verá a versão do TypeScript que ele está usando:

insira a descrição da imagem aqui

Existe um método para atualizar o Visual Studio Code que atualizará automaticamente o TypeScript para a versão mais recente lançada ou a atualização do TypeScript deve ser feita de forma independente?

O que tenho feito é informar explicitamente ao Visual Studio Code a pasta onde o módulo npm do TypeScript está instalado. Estou no Windows, portanto, depois de executar o comando npm para instalar o TypeScript ( npm install -g typescript), ele o instalará nesta pasta:

C:\Users\username\AppData\Roaming\npm\node_modules\typescript\

Portanto, você precisa informar ao Visual Studio Code para usar a libpasta de instalação do TypeScript npm. Você faz isso por:

  1. Abra as configurações do VS Code (Arquivo -> Preferências -> Configurações)

  2. Pesquisar typescript.tsdkconfiguração insira a descrição da imagem aqui

  3. Encontre onde npm instalado typescript com: npm list -g typescript. No meu caso, voltouC:\Users\username\AppData\Roaming\npm

  4. Substitua o valor da typescript.tsdkconfiguração para: C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib Observe o uso de barras duplas invertidas para ter uma string com escape adequado com barras invertidas.

  5. Confirme se o VS Code está usando a versão npm do TypeScript para intellisense abrindo um arquivo TypeScript, clicando no número da versão do TypeScript no canto inferior direito e vendo na janela de tarefas que o VS Code está carregando o TypeScript do diretório especificado na etapa 4:

insira a descrição da imagem aqui

  1. Confirme se o VS Code está usando a versão correta do TypeScript para compilar, indo para esta pasta e alterando o nome do arquivo:

C: \ Users \ username \ AppData \ Roaming \ npm \ tsc.cmd (para algo como tsc1.cmd)

Agora tente compilar no VS Code (Tasks -> Run Tasks -> tsc: build - tsconfig.json) e você deve obter esta mensagem de erro na janela do terminal do VS Code:

'tsc' is not recognized as an internal or external command, operable program or batch file.
The terminal process terminated with exit code: 1
  1. Mude o arquivo de volta para tsc.cmd e agora você deve ser capaz de construir e ter o Intellisense no código VS para o pacote de nó TypeScript instalado globalmente
gomisha
fonte
2
Por que esta não foi uma edição da resposta que já continha 99% dessas informações?
SgtPooki
Acho que nunca saberemos
Denny
4

Você deve ver um número de versão listado na barra inferior:

insira a descrição da imagem aqui

Se você clicar no número (2.4.0 acima), será apresentada uma opção para escolher a versão que deseja usar:

insira a descrição da imagem aqui

Se você não vir a versão desejada, significa que provavelmente não está instalada e você deve instalá-la.

npm install -g typescript@2.7.2

Substitua 2.7.2pela versão que deseja instalar.

Mattnedrich
fonte
1

Embora não tenha conseguido encontrar o arquivo tsserver.js quando usei o Spotlight no meu Mac, tentei novamente usando mdfind e descobri que sua localização era "/ usr / local / lib / node_modules / typescript / lib /"

Usei esse caminho ao editar as configurações do meu espaço de trabalho em settings.json

Agora estou usando minha versão mais recente do TypeScript, e VSCode me diz que estou usando minha versão mais recente.

Richard Fuhr
fonte
0

Eu tive um problema semelhante e agora consegui ter uma versão atualizada do TypeScript, modificando as variáveis ​​de ambiente em meu sistema. No meu caso, precisamos de uma versão do TypeScript superior a 2. Mas só consegui usar a versão 1.8.3. A primeira coisa é acessar as variáveis ​​de ambiente do meu sistema e verificar a variável de caminho. Lá encontrei uma referência ao TypeScript versão 1.8.3.

C: \ Arquivos de programas (x86) \ Microsoft SDKs \ TypeScript \ 1.8.3 \

Quando verifiquei o diretório pai, esta também era a versão mais recente instalada naquele diretório. Eu teria pensado que, instalando globalmente a versão mais recente, eu veria isso aqui também, mas não está lá. A versão que você vê aqui é a que foi instalada com o Visual Studio (não o código do Visual Studio).

Então, fui para o Visual Studio e atualizei a biblioteca TypeScript para a versão mais recente por meio de Opções> Extensões e atualizações. Lá, procurei a versão mais recente do TypeScript e instalei.

Isso disponibilizou uma nova versão no diretório pai mencionado anteriormente. Em seguida, alterei a variável de caminho para:

C: \ Arquivos de programas (x86) \ Microsoft SDKs \ TypeScript \ 2.2 \

Quando abro o VS Code e digito tsc -v, vejo que estou usando a versão mais recente. Nenhuma mensagem de incompatibilidade mais, etc. Espero que isso ajude vocês um pouco.

Thomas Van Herpe
fonte
0

O pacote Typescript possui um compilador e um serviço de linguagem. VScode vem com um serviço de linguagem Typescript, não com o compilador. Você pode ver o serviço de linguagem no canto inferior direito, como as outras respostas mostram, mas você não pode ver qual versão do compilador está sendo usada.

Você pode ter versões diferentes para o compilador e o serviço de linguagem.

Lombas
fonte
0

Para usar automaticamente a versão Typescript instalada na sua área de trabalho node_modules, sem ter que configurá-la toda vez que você configurar uma nova área de trabalho, você pode definir a configuração de Typescript padrão no JSON de configurações do usuário ( não na área de trabalho ) para usar um caminho relativo:

{
    // ... other User settings
    "typescript.tsdk": "./node_modules/typescript/lib"
}

Agora, quando você executa o comando "Selecionar versão do texto do tipo ...", a "Versão do código do VS" será sempre igual à "Versão do espaço de trabalho":

Comando 'Selecionar versão do texto tipográfico ...'

A única desvantagem potencial disso é que significa que você sempre precisa do Typescript instalado no espaço de trabalho em que está trabalhando. Porém, se você está escrevendo o Typescript em qualquer lugar, acho que é uma expectativa razoável.

Julien
fonte