Quale versione di TypeScript utilizza Visual Studio Code? Come aggiornarlo?


111

Come posso sapere quale versione di TypeScript viene utilizzata in Visual Studio Code? In particolare, stavo usando TypeScript 1.8.10 e VSCode 1.4.0. Per prima cosa ho aggiornato VSCode all'ultima versione, che era la 1.5.3. Ma controllando dalla riga di comando, ho visto che la mia versione di TypeScript era ancora 1.8.10. Quindi ho aggiornato TypeScript dalla riga di comando e ora è 2.0.3.

C'è un modo per sapere con certezza se Visual Studio Code utilizza la versione 2.0.3?

Esiste un metodo per aggiornare Visual Studio Code che aggiornerà automaticamente TypeScript all'ultima versione rilasciata o l'aggiornamento TypeScript deve essere eseguito in modo indipendente?


tsc --version ??
Hackerman

Credo che sia un'impostazione del file di progetto. Se apri il file del progetto (come un file .csproj) con il blocco note puoi rimuovere l'elemento della versione del dattiloscritto che dovrebbe obbligare il progetto a utilizzare l'ultima versione installata sul PC.
Igor

@Hackerman No, ti mostra solo la versione TSC globale.
Fabian Lauer

Risposte:


191

TypeScript può essere aggiornato automaticamente?

VS Code viene fornito con una versione stabile recente di TypeScript.

- dai documenti di VS Code

Ciò significa che non è possibile aggiornare automaticamente la versione TypeScript utilizzata da VS Code. È tuttavia possibile sovrascrivere la versione TypeScript utilizzata da VS Code modificando le impostazioni dell'utente o le impostazioni dell'area di lavoro.


Quale versione di TypeScript utilizza VS Code?

Quando apri un file TypeScript, VS Code dovrebbe visualizzare la versione TypeScript nella barra di stato in basso a destra dello schermo:

Versione TypeScript della barra di stato di VS Code


Modifica della versione TypeScript globale

  1. Installa la versione TypeScript desiderata a livello globale, ad esempio npm install -g typescript@2.0.5
  2. Apri Impostazioni utente VS Code ( F1> Open User Settings)
  3. Aggiorna / Inserisci "typescript.tsdk": "{your_global_npm_path}/typescript/lib"puoi trovare {your_global_npm_path} digitando npm root -g

Ora tutti i progetti che apri con VS Code useranno questa versione di TypeScript, a meno che, ovviamente, non ci sia un'impostazione dell'area di lavoro che la sostituisce.


Modifica della versione TypeScript locale

  1. Apri il progetto in VS Code
  2. Installa la versione TypeScript desiderata in locale, ad esempio npm install --save-dev typescript@2.0.5

    Il --save-devaggiornerà il tuo progetto package.json, aggiungendo la versione TypeScript che hai installato come file devDependency.

  3. Apri le impostazioni dell'area di lavoro di VS Code ( F1> Open Workspace Settings)

  4. Aggiornamento / Inserisci "typescript.tsdk": "./node_modules/typescript/lib"

    Ora solo il progetto in cui hai installato questa versione di TypeScript utilizzerà quella versione di TypeScript, l'installazione globale verrà ignorata da VS Code in questo progetto.

  5. Dopo aver aggiunto la typescript.tsdkvoce è quindi necessario utilizzare anche l'interfaccia utente di VS Code per selezionare la nuova versione:

    • Fare clic sulla versione visualizzata nel piè di pagina di VS Code:

      rispetto al piè di pagina del codice

    • Selezionalo nell'interfaccia utente:

      seleziona la versione ts nell'interfaccia utente


Guarda anche:


3
Cordiali saluti, sono su Windows, ho dovuto inserire il percorso completo della mia cartella dei moduli del nodo globale - C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib. Puoi ricontrollare il tuo con npm root -gnella riga di comando. Altrimenti, questo dovrebbe probabilmente essere contrassegnato come risposta @Richard Fuhr
Cody

L'aggiunta di questa impostazione ha causato la disabilitazione completa del codice di Visual Studio su tutte le funzionalità del linguaggio dei caratteri. Questa non è la risposta che stai cercando.
BentOnCoding

3
@BentOnCoding Questo non disabiliterà nulla. Verifica la presenza di errori di battitura nel tsdkpercorso e assicurati che TypeScript sia installato nel repository. Inoltre, altre 11 persone lo hanno trovato abbastanza corretto da esprimere un voto positivo ;-)
Fabian Lauer

VS Code ora sembra ricevere automaticamente gli aggiornamenti della versione di TypeScript, quindi la risposta qui potrebbe non essere più attuale.
Mickey Segal

1
Questa impostazione può essere invece applicata a un'impostazione dell'area di lavoro in modo che un progetto destinato specificamente a una versione specifica possa essere configurato per rimanere tale. Inoltre, NOTA non è possibile scegliere come target le versioni MSI installate che non sono compatibili. Vedi il sito: code.visualstudio.com/docs/typescript/typescript-compiling
Itanex

19

Visual Studio Code viene fornito con la propria versione stabile di TypeScript, ma è possibile passare a una versione più recente come descritto nei loro documenti

VS Code viene fornito con una versione stabile recente di TypeScript. Se si desidera utilizzare una versione più recente di TypeScript, è possibile definire l' impostazione typescript.tsdk ( File > Preferenze > Impostazioni utente / area di lavoro ) che punta a una directory contenente il file TypeScript tsserver.js .
...
Ad esempio:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}

La mia versione tsc è 2.0.3 ma non riesco a trovare il file tsserver.js sul mio Mac, quindi non posso modificare l'impostazione in VSCode
Richard Fuhr

L'aggiunta di questa impostazione ha causato la disabilitazione completa del codice di Visual Studio su tutte le funzionalità del linguaggio dattiloscritto. Questa non è la risposta che stai cercando.
BentOnCoding

Penso che questo sia descritto più chiaramente qui gist.github.com/tonysneed/bb6d442103a057578a9498f106e45ac5
Gregor Schmitz

17

C'è un modo per sapere con certezza se Visual Studio Code utilizza la versione 2.0.3?

Apri un file TypeScript in Visual Studio Code e in basso a destra vedrai la versione di TypeScript che sta utilizzando:

inserisci qui la descrizione dell'immagine

Esiste un metodo per aggiornare Visual Studio Code che aggiornerà automaticamente TypeScript all'ultima versione rilasciata o l'aggiornamento TypeScript deve essere eseguito in modo indipendente?

Il modo in cui l'ho fatto è indicare esplicitamente a Visual Studio Code la cartella in cui è installato il modulo npm TypeScript. Sono su Windows, quindi dopo aver eseguito il comando npm per installare TypeScript ( npm install -g typescript) lo installerà in questa cartella:

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

Quindi è necessario dire a Visual Studio Code di utilizzare la libcartella dell'installazione di TypeScript npm. A tale scopo:

  1. Apri le impostazioni di VS Code (File -> Preferenze -> Impostazioni)

  2. Cerca typescript.tsdkimpostazione inserisci qui la descrizione dell'immagine

  3. Trova dove npm installato dattiloscritto con: npm list -g typescript. Nel mio caso, è tornatoC:\Users\username\AppData\Roaming\npm

  4. Ignora il valore typescript.tsdkdell'impostazione su: C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib Nota l'uso di doppie barre all'indietro per avere una stringa con escape corretto con barre all'indietro.

  5. Conferma che VS Code sta utilizzando la versione npm di TypeScript per intellisense aprendo un file TypeScript, facendo clic sul numero di versione di TypeScript in basso a destra e vedendo nella finestra dell'attività che VS Code sta caricando TypeScript dalla directory specificata nel passaggio 4:

inserisci qui la descrizione dell'immagine

  1. Conferma che VS Code stia utilizzando la versione corretta di TypeScript per la compilazione andando in questa cartella e cambiando il nome del file:

C: \ Users \ username \ AppData \ Roaming \ npm \ tsc.cmd (a qualcosa come tsc1.cmd)

Ora prova a creare in VS Code (Tasks -> Run Tasks -> tsc: build - tsconfig.json) e dovresti ricevere questo messaggio di errore nella finestra del terminale di 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. Modificare nuovamente il file in tsc.cmd e ora dovresti essere in grado di compilare e avere Intellisense in VS Code per il pacchetto del nodo TypeScript installato a livello globale

2
Perché questa non era una modifica della risposta che conteneva già il 99% di queste informazioni?
SgtPooki

Immagino che non lo sapremo mai
Denny

4

Dovresti vedere un numero di versione elencato nella barra inferiore:

inserisci qui la descrizione dell'immagine

Se fai clic sul numero (2.4.0 sopra) ti verrà presentata un'opzione per scegliere la versione che desideri utilizzare:

inserisci qui la descrizione dell'immagine

Se non vedi la versione che desideri, significa che probabilmente non è installata e devi installarla.

npm install -g typescript@2.7.2

Sostituisci 2.7.2con la versione che desideri installare.


1

Anche se non sono riuscito a trovare il file tsserver.js quando ho usato Spotlight sul mio Mac, ho provato di nuovo a usare mdfind e ho scoperto che la sua posizione era "/ usr / local / lib / node_modules / typescript / lib /"

Quindi ho usato quel percorso durante la modifica delle mie impostazioni dell'area di lavoro in settings.json

Ora sto usando la mia versione più recente di TypeScript e VSCode mi dice che sto usando la mia versione più recente.


0

Ho avuto un problema simile e ora sono riuscito ad avere una versione aggiornata di TypeScript modificando le variabili di ambiente sul mio sistema. Nel mio caso, abbiamo bisogno di una versione TypeScript superiore alla 2. Ma sono stato in grado di utilizzare solo la versione 1.8.3. La prima cosa è che sono andato alle variabili di ambiente del mio sistema e ho controllato la variabile del percorso. Lì ho trovato un riferimento a TypeScript versione 1.8.3.

C: \ Programmi (x86) \ Microsoft SDK \ TypeScript \ 1.8.3 \

Quando ho controllato la directory principale, questa era anche la versione più recente installata in quella directory. Avrei pensato installando globalmente l'ultima versione, che avrei visto anche questo qui ma non è lì. La versione che vedi qui è quella che è stata installata con Visual Studio (non il codice di Visual Studio).

Quindi sono andato a Visual Studio e ho aggiornato la libreria TypeScript all'ultima versione tramite Opzioni> Estensioni e aggiornamenti. Lì ho cercato l'ultima versione di TypeScript e l'ho installata.

Ciò ha reso disponibile una nuova versione nella directory principale menzionata in precedenza. Ho quindi modificato la variabile del percorso in:

C: \ Programmi (x86) \ Microsoft SDK \ TypeScript \ 2.2 \

Quando ora apro VS Code e digito tsc -v vedo che sto usando l'ultima versione. Nessun messaggio di mancata corrispondenza, ecc. Spero che questo vi aiuti un po '.


0

Il pacchetto Typescript ha un compilatore e un servizio linguistico. VScode viene fornito con un servizio di linguaggio Typescript, non con il compilatore. Puoi vedere il servizio linguistico in basso a destra, come mostrano le altre risposte, ma non puoi vedere quale versione del compilatore è stata utilizzata.

È possibile avere versioni diverse per il compilatore e il servizio linguistico.


0

Per utilizzare automaticamente la versione Typescript installata nella tua area di lavoro node_modules, senza doverla configurare ogni volta che configuri una nuova area di lavoro, puoi impostare l'impostazione Typescript predefinita nelle Impostazioni utente JSON ( non Workspace ) per utilizzare un percorso relativo:

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

Ora, quando esegui il comando "Seleziona versione dattiloscritto ...", la "Versione di VS Code" sarà sempre la stessa della "Versione area di lavoro":

Comando "Seleziona versione dattiloscritto ..."

L'unico potenziale svantaggio di questo è che significa che hai sempre bisogno di Typescript installato nell'area di lavoro in cui lavori. Tuttavia, se stai scrivendo Typescript ovunque, penso che sia un'aspettativa ragionevole.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.