Какую версию TypeScript использует Visual Studio Code? Как его обновить?

111

Как узнать, какая версия TypeScript используется в Visual Studio Code? В частности, я использовал TypeScript 1.8.10 и VSCode 1.4.0. Сначала я обновил VSCode до последней версии, которая была 1.5.3. Но проверив из командной строки, я увидел, что моя версия TypeScript все еще была 1.8.10. Итак, я обновил TypeScript из командной строки, и теперь это 2.0.3.

Есть ли способ точно определить, использует ли Visual Studio Code версию 2.0.3?

Есть ли способ обновления кода Visual Studio, который автоматически обновит TypeScript до последней выпущенной версии, или обновление TypeScript должно выполняться независимо?

Ричард Фур
источник
tsc --version ??
Hackerman
Я считаю, что это настройка файла проекта. Если вы откроете файл проекта (например, файл .csproj) с помощью блокнота, вы можете удалить элемент версии машинописного текста, который должен заставить проект использовать последнюю версию, установленную на ПК.
Игорь
@Hackerman Нет, это просто показывает глобальную версию TSC.
Фабиан Лауэр,

Ответы:

191

Может ли TypeScript обновляться автоматически?

VS Code поставляется с последней стабильной версией TypeScript.

- из документов VS Code

Это означает, что нет возможности автоматически обновить версию TypeScript, используемую VS Code. Однако вы можете переопределить версию TypeScript, которую использует VS Code, изменив либо пользовательские настройки, либо настройки рабочей области.


Какую версию TypeScript использует VS Code?

Когда вы открываете файл TypeScript, VS Code должен отображать версию TypeScript в строке состояния в правом нижнем углу экрана:

Строка состояния VS Code Версия TypeScript


Изменение глобальной версии TypeScript

  1. Установите желаемую версию TypeScript глобально, например npm install -g typescript@2.0.5
  2. Открыть настройки пользователя VS Code ( F1> Open User Settings)
  3. Обновить / вставить, "typescript.tsdk": "{your_global_npm_path}/typescript/lib"вы можете узнать {your_global_npm_path}, набрав npm root -g

Теперь все проекты, которые вы открываете с помощью VS Code, будут использовать эту версию TypeScript, если, конечно, нет настройки рабочей области, которая переопределяет это.


Изменение локальной версии TypeScript

  1. Откройте проект в VS Code
  2. Установите желаемую версию TypeScript локально, например npm install --save-dev typescript@2.0.5

    Он --save-devобновит ваш проект package.json, добавив версию TypeScript, которую вы установили как файл devDependency.

  3. Откройте настройки рабочего пространства VS Code ( F1> Open Workspace Settings)

  4. Обновить / вставить "typescript.tsdk": "./node_modules/typescript/lib"

    Теперь только проект, в котором вы установили эту версию TypeScript, будет использовать эту версию TypeScript, глобальная установка будет игнорироваться VS Code в этом проекте.

  5. После добавления typescript.tsdkзаписи также необходимо использовать пользовательский интерфейс VS Code для выбора новой версии:

    • Щелкните версию, отображаемую в нижнем колонтитуле VS Code:

      против нижнего колонтитула кода

    • Выберите его в пользовательском интерфейсе:

      выберите версию ts в пользовательском интерфейсе


Смотрите также:

Фабиан Лауэр
источник
3
К вашему сведению, я нахожусь в Windows, мне пришлось указать полный путь к моей папке модулей глобального узла - C:\\Users\\myname\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib. Вы можете дважды проверить свой npm root -gв командной строке. В противном случае, это, вероятно, следует отметить как ответ @Richard Fuhr
Cody
Добавление этого параметра привело к тому, что код Visual Studio полностью отключил все функции языка машинописного текста. Это не тот ответ, который вы ищете.
BentOnCoding
3
@BentOnCoding Это ничего не отключит. Убедитесь, что в tsdkпути нет опечаток, и убедитесь, что TypeScript установлен в вашем репо. Кроме того, еще 11 человек сочли это достаточно правильным, чтобы проголосовать за ;-)
Фабиан Лауэр
VS Code теперь, похоже, автоматически получает обновления версии TypeScript, поэтому ответ здесь может быть устаревшим.
Микки Сигал,
1
Вместо этого этот параметр можно применить к параметру рабочей области, чтобы проект, специально предназначенный для конкретной версии, можно было настроить таким образом. Кроме того, ВНИМАНИЕ, вы не можете настроить таргетинг на установленные MSI версии, которые они несовместимы. См. Сайт: code.visualstudio.com/docs/typescript/typescript-compiling
Itanex
20

Visual Studio Code поставляется с собственной стабильной версией TypeScript, но вы можете переключиться на более новую версию, как описано в их документации.

VS Code поставляется с последней стабильной версией TypeScript. Если вы хотите использовать более новую версию TypeScript, вы можете определить параметр typescript.tsdk ( Файл > Параметры > Параметры пользователя / рабочей области ), указывающий на каталог, содержащий файл TypeScript tsserver.js .
...
Например:

{
   "typescript.tsdk": "node_modules/typescript/lib"
}
DAXaholic
источник
Моя версия tsc - 2.0.3, но я не могу найти файл tsserver.js на моем Mac, поэтому не могу изменить настройку в VSCode
Ричард Фур
Добавление этого параметра привело к тому, что код Visual Studio полностью отключил все функции языка машинописного текста. Это не тот ответ, который вы ищете.
BentOnCoding
Думаю, это более четко описано здесь gist.github.com/tonysneed/bb6d442103a057578a9498f106e45ac5
Грегор Шмитц
17

Есть ли способ точно определить, использует ли Visual Studio Code версию 2.0.3?

Откройте файл TypeScript в Visual Studio Code, и в правом нижнем углу вы увидите версию TypeScript, которую он использует:

введите описание изображения здесь

Есть ли способ обновления кода Visual Studio, который автоматически обновит TypeScript до последней выпущенной версии, или обновление TypeScript должно выполняться независимо?

Я делал это так, чтобы явно указать Visual Studio Code папку, в которой установлен ваш модуль TypeScript npm. Я работаю в Windows, поэтому после того, как вы запустите команду npm для установки TypeScript ( npm install -g typescript), он установит его в эту папку:

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

Таким образом, вам нужно указать Visual Studio Code использовать libпапку с установленной вами TypeScript npm. Вы делаете это:

  1. Откройте настройки VS Code (Файл -> Настройки -> Настройки)

  2. Искать typescript.tsdkнастройку введите описание изображения здесь

  3. Найти , где НПМ установлен машинопись с: npm list -g typescript. В моем случае он вернулсяC:\Users\username\AppData\Roaming\npm

  4. Замените значение typescript.tsdkпараметра на: C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib Обратите внимание на использование двойных обратных косых черт для правильного экранирования строки с помощью обратных косых черт.

  5. Убедитесь, что VS Code использует версию TypeScript для intellisense npm, открыв файл TypeScript, щелкнув номер версии TypeScript в правом нижнем углу и увидев в окне задачи, что VS Code загружает TypeScript из каталога, указанного на шаге 4:

введите описание изображения здесь

  1. Убедитесь, что VS Code использует правильную версию TypeScript для компиляции, перейдя в эту папку и изменив имя файла:

C: \ Users \ username \ AppData \ Roaming \ npm \ tsc.cmd (что-то вроде tsc1.cmd)

Теперь попробуйте выполнить сборку в VS Code (Tasks -> Run Tasks -> tsc: build - tsconfig.json), и вы должны получить это сообщение об ошибке в окне терминала 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. Измените файл обратно на tsc.cmd, и теперь вы сможете создавать и использовать Intellisense в VS Code для глобально установленного пакета узла TypeScript.
гомиша
источник
2
Почему это не было редактированием ответа, в котором уже содержалось 99% этой информации?
SgtPooki
Думаю, мы никогда не узнаем
Денни
4

Вы должны увидеть номер версии, указанный на нижней панели:

введите описание изображения здесь

Если вы нажмете на номер (2.4.0 выше), вам будет предложена возможность выбрать версию, которую вы хотите использовать:

введите описание изображения здесь

Если вы не видите нужную версию, это означает, что она, вероятно, не установлена ​​и вам необходимо ее установить.

npm install -g typescript@2.7.2

Замените 2.7.2версией, которую хотите установить.

Mattnedrich
источник
1

Хотя мне не удалось найти файл tsserver.js, когда я использовал Spotlight на своем Mac, я снова попытался использовать mdfind и обнаружил, что он находится в "/ usr / local / lib / node_modules / typescript / lib /"

Поэтому я использовал этот путь при редактировании настроек рабочего пространства в settings.json.

Теперь я использую свою самую последнюю версию TypeScript, и VSCode сообщает мне, что я использую самую последнюю версию.

Ричард Фур
источник
0

У меня была аналогичная проблема, и теперь мне удалось получить последнюю версию TypeScript, изменив переменные среды в моей системе. В моем случае нам нужна версия TypeScript выше 2. Но я смог использовать только версию 1.8.3. Первым делом я перешел к системным переменным среды и проверил переменную пути. Там я нашел ссылку на TypeScript версии 1.8.3.

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

Когда я проверил родительский каталог, это также была самая высокая версия, установленная в этом каталоге. Я бы подумал, установив глобально последнюю версию, что я тоже увижу это здесь, но его там нет. Версия, которую вы видите здесь, была установлена ​​с Visual Studio (а не с кодом Visual Studio).

Итак, я пошел в Visual Studio и обновил библиотеку TypeScript до последней версии, выбрав «Параметры»> «Расширения и обновления». Там я нашел последнюю версию TypeScript и установил ее.

Это сделало новую версию доступной в родительском каталоге, упомянутом ранее. Затем я изменил переменную пути на:

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

Когда я открываю VS Code и набираю tsc -v, я вижу, что использую последнюю версию. Больше никаких сообщений о несоответствии и т.д. Надеюсь, это вам немного поможет.

Томас Ван Херпе
источник
0

В пакете Typescript есть компилятор и языковая служба. VScode поставляется с языковым сервисом Typescript, а не с компилятором. Вы можете увидеть языковую службу в правом нижнем углу, как и другие ответы, но вы не можете увидеть, какая версия компилятора использовалась.

У вас могут быть разные версии для компилятора и языковой службы.

Ломбас
источник
0

Чтобы автоматически использовать версию Typescript, установленную в вашей рабочей области node_modules, без необходимости настраивать ее каждый раз, когда вы настраиваете новую рабочую область, вы можете установить настройку Typescript по умолчанию в пользовательских настройках JSON ( не в рабочей области ) для использования относительного пути:

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

Теперь, когда вы запускаете команду «Выбрать версию Typescript ...», «Версия кода VS» всегда будет такой же, как «Версия рабочей области»:

Команда "Выбрать версию машинописного текста ..."

Единственный потенциальный недостаток этого состоит в том, что это означает, что вам всегда нужно установить Typescript в рабочей области, в которой вы работаете. Хотя, если вы пишете Typescript где угодно, я думаю, что это разумное ожидание.

Жюльен
источник