Подтвердить что ты не робот

Как импортировать файлы Intellisense в vsCode (код Visual Studio)

Я не уверен, что понимаю, как работает intellisense для нового текстового редактора Microsoft vsCode. В docs под заголовком "Великий код редактирования" он показывает предупреждение под глобальной переменной node __dir и предлагает предложение лампочки, чтобы добавить ссылку на файл d.ts, чтобы вы могли получить intellisense для node:

enter image description here

У меня есть 2 вопроса:

1 - Как импортировать файлы DefinitelyTyped (d.ts) напрямую (без указания редактора) или мне нужно скопировать их из источника github и помещать их в каталог типизации?

2 - Могу ли я получить intellisense для любой библиотеки, которая имеет определение typescript? Я попробовал следующее, но когда я набираю express. или when., я не получаю никакого intellisense. Тем не менее, я получаю node intellisense.

/// <reference path="../typings/node/node.d.ts"/>
/// <reference path="../typings/express/express.d.ts" />

var when    = require('when')
  , express = require('express')
  , gulp    = require('gulp')
4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: август 2016 года: TSD теперь обесценивается. вместо этого используйте https://www.npmjs.com/package/typings

npm install typings --global

ИЛИ

Если вы используете VS2015 NodeJS v1.2, выпущенный 29 июля 2016 года, тогда [email protected] автоматически устанавливается для вас во время первого использования:

Executing command 'npm install "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\MICROSOFT\NODE.JS TOOLS FOR VISUAL STUDIO\1.2\TypingsAcquisitionTool"
[email protected] ..\..\..\..\..\node_modules\ntvs-typings-acquisition-tool
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

----- Оригинальный ответ -----

Существует менеджер пакетов для Typescript файлов определений. Это репозиторий, основанный на сообществах, содержащий определения Typescript для многих популярных библиотек.

Вы можете установить tsd, следуя инструкциям здесь.

После установки tsd по всему миру вы можете установить пакеты из корня проекта в командной строке следующим образом:

$ tsd install express --save

Это создаст каталог типизации, если он не существует, и добавляет экспресс-каталог с файлом express.d.ts внутри.

Screenshot

Он также создает файл tsd.d.ts, содержащий ссылки на все ваши файлы tsd. Если я установил еще несколько tsd, вот как это выглядит.

enter image description here

Теперь для доступа к моим файлам tsd все, что мне нужно сделать, это указать их путь в верхней части моего кода с помощью /// <reference path="typings/tsd.d.ts" />

enter image description here

Теперь я получаю intellisense.

enter image description here

Ответ 2

В январе'016 пакет "tsd" устарел. Вместо этого используйте пакет "typings".

См. https://github.com/DefinitelyTyped/tsd/issues/269

И вы можете найти в VS Code (ext install) два расширения - Typings Installer и Typings, которые помогают легко устанавливать файлы определения d.ts из VS Code.

Ответ 3

Проверьте, работаете ли вы в режиме Явного проекта (REF: https://code.visualstudio.com/Docs/languages/javascript#_javascript-projects-jsconfigjson)

Что происходит?

В Яркий проектный режим VS-код использует файлы "main.d.ts" в папке с образцами для intellisense. Этот файл будет иметь ссылку на другие файлы определений, и, следовательно, интеллект работает отлично. В моем случае main.d.ts выглядит следующим образом

/// <reference path="main/ambient/express-serve-static-core/index.d.ts" />
/// <reference path="main/ambient/express/index.d.ts" />
/// <reference path="main/ambient/node/index.d.ts" />
/// <reference path="main/ambient/serve-static/index.d.ts" />

В режиме видимости файла код VS не будет проверять определения типирования и, следовательно, не будет иметь интеллект. В таком случае, чтобы добавить intellisence, эталонный тег будет полезен, поскольку вы ссылаетесь на определение вручную. Если вы ссылаетесь вручную, обратитесь к main.d.ts под типизациями, а не к определению для конкретной библиотеки. Это сделает ваш код менее ориентированным.

Также обратите внимание, что эквивалент typescript для jsconfig.json - tsconfig.json, который также установит редактор в режим явного проекта.

Ответ 4

Я получил экспресс-intellisense для работы с выражением, загрузив express.d.ts файл из https://github.com/borisyankov/DefinitelyTyped и ссылаясь на него с помощью пути относительно мой проект dir:

/// <reference path="express.d.ts"/>

Я все еще пытаюсь найти, к чему относится /typings. Также возможно настроить файлы d.ts как часть параметров проекта.

Edit:

Нашел.

~/Downloads/VSCode-osx
▶ find . -type d -name "typings"
./Visual Studio Code.app/Contents/Resources/app/node_modules/applicationinsights/Scripts/typings

Таким образом, они имеют node, async и applicationInsights, включенные в OSX.app по умолчанию. Все, что вы хотите, я думаю, вы можете просто включить, как я сделал выше.

Изменить Edit:

менеджер пакетов tsd, упомянутый @kurtcorbett, выглядит хорошо, используйте это.

Ответ 5

Если вы хотите автоматически установить определения типов для своих пакетов, вы можете загрузить расширение

Ответ 6

То, что я сделал, касалось лампочки и выбрало вариант, который сказал, добавить ссылку на node/node.d.ts в proyect.

После этого я просто написал:///в верхней части редактора, и это сработало для меня.

Ответ 7

Вы можете добиться этого с помощью файла jsconfig.json после выпуска в апреле 2017 года.

Пример содержимого файла:

{
 "typeAcquisition": {
     "include": [
         "jquery",
          "underscore"
     ]
   }
}