1

В Visual Studio Code (VSCode) я работаю с устаревшим приложением, которое является JavaScript ES5. Я заметил, что IntelliSense не работает для всех типизированных файлов, которые я установил. Intellisense работает для глобальных типов, но не работает для внешних типов? Поскольку это устаревший код, я скорее не изменю исходные .js-файлы, чтобы заставить Intellisense работать.Код Visual Studio Intellisense и JavaScript ES5

Intellisense для глобальных типов, таких как угловые и jquery, похоже, работает. Но IntelliSense для внешних типов не работает.

Здесь вы можете видеть, что у меня установлено четыре типографии. Угловые и jQuery устанавливаются как глобальные. LoDash и Ramda установлены как внешние. У меня есть файл jsconfig.json; Пусто. Имея файл jsconfig.json, IntelliSense работает для Angular и JQuery, но не для LoDash и Ramda.

VSCode Typings

В следующих двух изображений, вы можете увидеть, что Intellisense работает для угловых и JQuery.

VSCode Typings with Angular

VSCode Typings with jQuery

Теперь я использую LoDash, но IntelliSense не работает.

VSCode Typings with LoDash

Если я импортировать библиотеку LoDash, то IntelliSense работает. Поскольку код является устаревшим ES5 JavaScript и импорт не поддерживается ES5, использование импорта не является жизнеспособным вариантом.

VSCode Typings with LoDash and imports

Хороший тест должен был бы получить IntelliSense работает LoDash. Я бы хотел набрать «_». и VSCode отображает список свойств и методов LoDash, не включая дополнительный код в источнике.

Кто-нибудь знает, как решить эту проблему? Если да, укажите, что сработало для вас.

Ресурсы

BarDev

+0

Характерные особенности, характерные для TypeScript (следовательно, окончание файлов «.ts» вы видите).Измените имя файла на «main.ts», и я предполагаю, что это сработает. Установите компилятор TypeScript для установки на ES5, и все готово. –

+0

@MikeMcCaughan - Основываясь на моих антидотальных доказательствах, intellisense работает с AngularJS и jQuery без файла с расширением «.ts». Также в документации VSCode в нем обсуждается, что файлы JavaScript могут использовать intellisense. Поддержка Rich Редактирование https://code.visualstudio.com/docs/languages/javascript Я заметил в моем файле typings.json, угловатый и JQuery находится в «globaDependency», но lodash находится в - JavaScript «зависимость». Я попытался установить типизацию lodash в глобальном масштабе, но я получил сообщение об ошибке, что типизация lodash - это внешний модуль. –

+0

Я ничего не говорил о Intellisense. Я говорил конкретно о типизациях, файлах определений или файлах «.d.ts». На снимке экрана отображается «угловая» папка под «typings \ global». Можете заглянуть туда :). Intellisense в JavaScript использует механизм анализа JavaScript для обнаружения метаданных о файлах .js в вашем проекте. –

ответ

2

Как написано в official VS Code JS Intellisense documentation,

Если вы используете Visual Studio Code 1.8+, вы можете попеременно expli citly list packages, чтобы получить типизацию для вашего jsconfig.json.

"typeAcquisition": { 
    "include": [ 
     "lodash" 
    ] 
} 

Теперь, когда вам требуется или импортировать lodash, Visual Studio код будет использовать автоматически загружаемые файлы типизации для библиотеки, чтобы обеспечить богатый Intellisense. В большинстве распространенных библиотек JavaScript есть доступные типы.

+1

Но если я не хочу требовать или импортировать lodash, потому что я действительно ожидаю, что это глобальная переменная в моем устаревшем коде ES5, что мне делать? –

Смежные вопросы