Versi TypeScript apa yang digunakan oleh Visual Studio Code? Bagaimana cara memperbaruinya?

111

Bagaimana cara mengetahui versi TypeScript yang digunakan dalam kode Visual Studio? Secara khusus, saya telah menggunakan TypeScript 1.8.10 dan VSCode 1.4.0. Saya pertama kali memperbarui VSCode ke versi terbaru, yaitu 1.5.3. Tetapi memeriksa dari baris perintah, saya melihat bahwa versi TypeScript saya masih 1.8.10. Jadi saya memperbarui TypeScript dari baris perintah, dan sekarang menjadi 2.0.3.

Apakah ada cara untuk mengetahui dengan pasti apakah Visual Studio Code menggunakan versi 2.0.3?

Apakah ada metode untuk memperbarui Visual Studio Code yang secara otomatis akan memperbarui TypeScript ke versi rilis terbaru, atau apakah pembaruan TypeScript harus dilakukan secara independen?

Richard Fuhr
sumber
tsc --version ??
Hackerman
Saya percaya ini adalah pengaturan file proyek. Jika Anda membuka file proyek (seperti file .csproj) dengan notepad, Anda dapat menghapus elemen versi skrip yang akan memaksa proyek untuk menggunakan versi terbaru yang diinstal pada PC.
Igor
@Hackerman Tidak, itu hanya menunjukkan versi TSC global.
Fabian Lauer

Jawaban:

191

Dapatkah TypeScript diperbarui secara otomatis?

VS Code dikirimkan dengan TypeScript versi stabil terbaru.

- dari dokumen VS Code

Ini berarti tidak ada cara untuk secara otomatis meningkatkan versi TypeScript yang digunakan oleh VS Code. Namun Anda dapat menimpa versi TypeScript VS Code yang digunakan dengan mengubah pengaturan pengguna atau pengaturan ruang kerja.


Versi TypeScript apa yang digunakan VS Code?

Saat Anda membuka file TypeScript, VS Code harus menampilkan versi TypeScript di bilah status di kanan bawah layar:

Versi VS Code bilah status TypeScript


Mengubah versi TypeScript global

  1. Instal versi TypeScript yang diinginkan secara global, misalnya npm install -g [email protected]
  2. Buka Pengaturan Pengguna VS Code ( F1> Open User Settings)
  3. Perbarui / Masukkan "typescript.tsdk": "{your_global_npm_path}/typescript/lib"Anda dapat mengetahui {your_global_npm_path} dengan mengetik npm root -g

Sekarang semua proyek yang Anda buka dengan VS Code akan menggunakan versi TypeScript ini, kecuali tentu saja ada pengaturan ruang kerja yang menimpa ini.


Mengubah versi TypeScript lokal

  1. Buka proyek di VS Code
  2. Instal versi TypeScript yang diinginkan secara lokal, misalnya npm install --save-dev [email protected]

    Ini --save-devakan memperbarui proyek Anda package.json, menambahkan versi TypeScript yang Anda instal sebagai file devDependency.

  3. Buka Pengaturan Ruang Kerja VS Code ( F1> Open Workspace Settings)

  4. Perbarui / Sisipkan "typescript.tsdk": "./node_modules/typescript/lib"

    Sekarang hanya proyek tempat Anda menginstal versi TypeScript yang akan menggunakan versi TypeScript itu, instalasi global akan diabaikan oleh VS Code dalam proyek ini.

  5. Setelah menambahkan typescript.tsdkentri, Anda juga perlu menggunakan VS Code UI untuk memilih versi baru:

    • Klik pada versi yang ditampilkan di footer VS Code:

      vs footer kode

    • Pilih di UI:

      pilih versi ts di UI


Lihat juga:

Fabian Lauer
sumber
3
FYI Saya menggunakan Windows, saya harus meletakkan path lengkap ke folder modul node global saya - C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib. Anda dapat memeriksa ulang milik Anda dengan npm root -gdi baris perintah. Jika tidak, ini mungkin harus ditandai sebagai jawaban @Richard Fuhr
Cody
Menambahkan setelan ini menyebabkan kode studio visual menonaktifkan semua fitur bahasa skrip ketikan. Ini bukanlah jawaban yang Anda cari.
BentOnCoding
3
@BentOnCoding Ini tidak akan menonaktifkan apa pun. Periksa kesalahan ketik di tsdkjalur dan pastikan TypeScript diinstal di repo Anda. Juga, 11 orang lainnya menganggap ini cukup benar untuk memberi suara positif ;-)
Fabian Lauer
VS Code sekarang tampaknya mendapatkan pembaruan versi TypeScript secara otomatis, jadi jawabannya di sini mungkin tidak lagi terkini.
Mickey Segal
1
Setelan ini dapat diterapkan ke setelan ruang kerja sehingga proyek yang secara khusus menargetkan versi tertentu dapat dikonfigurasi agar tetap seperti itu. Selain itu, CATATAN Anda tidak dapat menargetkan versi yang diinstal MSI yang tidak kompatibel. Lihat situs: code.visualstudio.com/docs/typescript/typescript-compiling
Itanex
19

Visual Studio Code hadir dengan TypeScript versi stabilnya sendiri, tetapi Anda dapat beralih ke versi yang lebih baru seperti yang dijelaskan dalam dokumen mereka

VS Code dikirimkan dengan TypeScript versi stabil terbaru. Jika Anda ingin menggunakan TypeScript versi yang lebih baru, Anda dapat menentukan pengaturan typescript.tsdk ( File > Preferensi > Pengaturan Pengguna / Ruang Kerja ) yang mengarah ke direktori yang berisi file TypeScript tsserver.js .
...
Misalnya:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}
DAXaholic
sumber
Tsc --version saya adalah 2.0.3 tetapi tidak dapat menemukan file tsserver.js di Mac saya sehingga tidak dapat mengubah pengaturan di VSCode
Richard Fuhr
Menambahkan setelan ini menyebabkan kode studio visual menonaktifkan semua fitur bahasa skrip ketikan. Ini bukanlah jawaban yang Anda cari.
BentOnCoding
Saya pikir ini dijelaskan lebih jelas di sini gist.github.com/tonysneed/bb6d442103a057578a9498f106e45ac5
Gregor Schmitz
17

Apakah ada cara untuk mengetahui dengan pasti apakah Visual Studio Code menggunakan versi 2.0.3?

Buka file TypeScript dalam Visual Studio Code dan di kanan bawah Anda akan melihat versi TypeScript yang digunakannya:

masukkan deskripsi gambar di sini

Apakah ada metode untuk memperbarui Visual Studio Code yang secara otomatis akan memperbarui TypeScript ke versi rilis terbaru, atau apakah pembaruan TypeScript harus dilakukan secara independen?

Cara saya melakukannya adalah dengan secara eksplisit memberi tahu Visual Studio Code folder tempat modul npm TypeScript Anda diinstal. Saya menggunakan Windows, jadi setelah Anda menjalankan perintah npm untuk menginstal TypeScript ( npm install -g typescript) itu akan menginstalnya di folder ini:

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

Jadi, Anda perlu memberi tahu Visual Studio Code untuk menggunakan libfolder instalasi npm TypeScript Anda. Anda melakukan ini dengan:

  1. Buka pengaturan VS Code (File -> Preferences -> Settings)

  2. Cari typescript.tsdkpengaturan masukkan deskripsi gambar di sini

  3. Cari mana NPM diinstal naskah dengan: npm list -g typescript. Dalam kasus saya, itu kembaliC:\Users\username\AppData\Roaming\npm

  4. Ganti nilai typescript.tsdksetelan ke: C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib Perhatikan penggunaan garis miring ke belakang ganda untuk memiliki string yang lolos dengan benar dengan garis miring ke belakang.

  5. Konfirmasikan bahwa VS Code menggunakan versi npm dari TypeScript untuk intellisense dengan membuka file TypeScript, mengklik nomor versi TypeScript di kanan bawah dan melihat di jendela tugas bahwa VS Code memuat TypeScript dari direktori yang ditentukan di langkah 4:

masukkan deskripsi gambar di sini

  1. Konfirmasikan bahwa VS Code menggunakan versi TypeScript yang benar untuk kompilasi dengan membuka folder ini dan mengubah nama file:

C: \ Users \ username \ AppData \ Roaming \ npm \ tsc.cmd (ke sesuatu seperti tsc1.cmd)

Sekarang coba buat di VS Code (Tasks -> Run Tasks -> tsc: build - tsconfig.json) dan Anda akan mendapatkan pesan kesalahan ini di jendela terminal 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. Ubah file kembali ke tsc.cmd dan Anda sekarang harus dapat membangun dan memiliki Intellisense dalam Kode VS untuk paket node TypeScript yang diinstal secara global
gomisha
sumber
2
Mengapa ini bukan hasil edit jawaban yang sudah memiliki 99% informasi ini?
SgtPooki
Saya kira kita tidak akan pernah tahu
Denny
4

Anda harus melihat nomor versi yang tercantum di bilah bawah:

masukkan deskripsi gambar di sini

Jika Anda mengklik nomor (2.4.0 di atas), Anda akan diberikan opsi untuk memilih versi yang ingin Anda gunakan:

masukkan deskripsi gambar di sini

Jika Anda tidak melihat versi yang Anda inginkan, itu berarti mungkin belum diinstal dan Anda harus menginstalnya.

npm install -g typescript@2.7.2

Ganti 2.7.2dengan versi yang ingin Anda instal.

mattnedrich
sumber
1

Meskipun saya tidak dapat menemukan file tsserver.js ketika saya menggunakan Spotlight di Mac saya, saya mencoba lagi menggunakan mdfind, dan saya menemukan lokasinya menjadi "/ usr / local / lib / node_modules / typescript / lib /"

Jadi saya menggunakan jalur itu saat mengedit pengaturan Workspace saya di settings.json

Sekarang saya menggunakan TypeScript versi terbaru saya, dan VSCode memberi tahu saya bahwa saya menggunakan versi terbaru saya.

Richard Fuhr
sumber
0

Saya memiliki masalah yang sama dan sekarang saya berhasil memiliki versi TypeScript yang terbaru dengan memodifikasi variabel lingkungan di sistem saya. Dalam kasus saya, kami memerlukan versi TypeScript yang lebih tinggi dari 2. Tetapi saya hanya dapat menggunakan versi 1.8.3. Hal pertama adalah saya pergi ke variabel lingkungan sistem saya dan memeriksa variabel jalur. Di sana saya menemukan referensi ke TypeScript versi 1.8.3.

C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 1.8.3 \

Ketika saya memeriksa direktori induk, ini juga merupakan versi tertinggi yang dipasang di direktori itu. Saya akan berpikir dengan menginstal versi terbaru secara global, saya akan melihat ini di sini juga, tetapi tidak ada. Versi yang Anda lihat di sini adalah versi yang diinstal dengan Visual Studio (bukan kode studio visual).

Jadi saya pergi ke Visual Studio dan memperbarui pustaka TypeScript ke versi terbaru melalui Opsi> Ekstensi dan Pembaruan. Di sana saya mencari versi terbaru dari TypeScript dan menginstalnya.

Ini membuat versi baru tersedia di direktori induk yang disebutkan sebelumnya. Saya kemudian mengubah variabel jalur menjadi:

C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 2.2 \

Saat saya membuka VS Code dan mengetik tsc -v, saya melihat bahwa saya menggunakan versi terbaru. Tidak ada lagi pesan yang tidak cocok, dll. Semoga ini bisa membantu kalian sedikit.

Thomas Van Herpe
sumber
0

Paket typescript memiliki kompiler dan layanan bahasa. VScode hadir dengan layanan bahasa Typecript, bukan dengan compiler. Anda dapat melihat layanan bahasa di kanan bawah, seperti yang ditunjukkan jawaban lain, tetapi Anda tidak dapat melihat versi kompiler apa yang digunakan.

Anda dapat memiliki versi berbeda untuk kompilator dan layanan bahasa.

Lombas
sumber
0

Untuk secara otomatis menggunakan versi Ketikan yang diinstal di ruang kerja Anda node_modules, tanpa harus mengonfigurasinya setiap kali Anda menyiapkan ruang kerja baru, Anda dapat menyetel pengaturan Ketik standar di Pengaturan Pengguna JSON ( bukan Ruang Kerja ) untuk menggunakan jalur relatif:

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

Sekarang, saat Anda menjalankan perintah "Select Typecript Version ...", "VS Code's Version" akan selalu sama dengan "Workspace Version":

Perintah 'Select Typecript Version ...'

Satu-satunya kelemahan potensial untuk ini adalah bahwa itu berarti Anda selalu membutuhkan Typecript yang diinstal di ruang kerja tempat Anda bekerja. Meskipun, jika Anda menulis Typecript di mana saja, saya pikir itu adalah harapan yang masuk akal.

Julien
sumber