VS Code: включить javascript intellisense в проекте машинописного текста

Есть ли способ включить intellisense для файлов Javascript в проекте Typescript? Если я импортирую функцию из пакета javascript следующим образом:

import foo from "js-package"

и я нахожусь в index.js, я вижу, как intellisense собирает комментарии JsDoc и перечисляет параметры, принимаемые функцией; однако, если я нахожусь в файле .ts, я ничего этого не получаю. Как включить Js intellisense в файлах .ts с помощью VS Code?

РЕДАКТИРОВАТЬ: Вот что происходит:

Машинопись: нет смысла

Javascript: разум

Иронично, не правда ли?


comment
Вы пробовали параметр AllowJS в tsconfig.json?   -  person Akash Kava    schedule 11.01.2020
comment
Попробуйте добавить // @ts-check в первую строку js-файла. Он может делать то, что вы хотите.   -  person Automatico    schedule 11.01.2020
comment
у вас есть типизация или в пакете есть типизация для машинописного текста? Если в пакете этого нет, необходимо указать типизацию в @types/... или в tsconfig. (https://github.com/microsoft/vscode/issues/24956).(https://github.com/bpmn-io/diagram-js/issues/227)   -  person mr.vea    schedule 18.01.2020


Ответы (6)


Вам не нужны плагины. Просто включите typeAcquisition в вашем tsconfig.json, добавив:

{
    ...
    "typeAcquisition": {
            "enable": true
    }
}

Это позволяет автоматически обнаруживать и загружать файлы определений для машинописного текста. Я часто перезагружаю окно (перезапускаю vscode) при изменении настроек, чтобы убедиться, что настройки были прочитаны. Хотя это не всегда необходимо.

Эта функция отключена по умолчанию при использовании файла конфигурации tsconfig.json, но ее можно включить, как описано ниже). источник

Ранее он находился в разделе typingOptions.enableAutoDiscovery, но был преобразован в typeAcquisition.enable, как показано в этом Github issue< /а>. Вы все еще можете найти ссылки на на этих веб-сайтах. Мне сложно найти информацию о typeAcquisition, но схема доказывает ее существование.

Отсутствует tsconfig.json? Создайте один следующий верхний ответ здесь.

person Ben Butterworth    schedule 17.01.2020
comment
Кажется, это действительно исправлено. Теперь я вижу информацию о типе jsdoc, а не только о модуле импорта. - person Alexis Tyler; 18.01.2020

Возможно, у вас есть вариант "typescript.suggest.completeJSDocs": false. В этом случае вам может помочь переключение на true.

https://code.visualstudio.com/docs/languages/typescript#_jsdoc-support

Имейте в виду, что при использовании JSDoc для кода TypeScript не следует включать аннотации типов. Компилятор TypeScript использует только аннотации типа TypeScript и игнорирует аннотации из JSDoc.

person Javier    schedule 13.01.2020
comment
Та же проблема, по-прежнему показывает модуль импорта при наведении. :( - person Alexis Tyler; 14.01.2020

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

Только что я понял, что если вы добавите ссылку на файл .js в свой файл .ts, вы получите intellisense для указанного файла.

Моя верхняя часть файла выглядит так:

///<reference path="../node_modules/tinkerforge/Tinkerforge.js" />
///<reference path="../node_modules/tinkerforge/lib/IPConnection.js" />

import * as tinkerforge from "tinkerforge";

let ip = new tinkerforge.IPConnection();
ip.connect();

Мне это кажется хаком, но он делает то, что я хочу, без хлопот с написанием файлов d.ts для этого модуля.

Может ли кто-нибудь еще попробовать это и подтвердить, что это работает?

person Benedikt    schedule 14.04.2020

Вам не нужно инициализировать intellisense для typescript, он будет обнаружен автоматически, если вы хотите сделать это явно, вы можете проверить изображение ниже, вы можете выбрать language оттудавведите здесь описание изображения

person Praveen Kumar    schedule 22.06.2018
comment
Посмотрите на мой отредактированный вопрос: я сказал, что не могу использовать javascript intellisense в файлах .ts. Я не могу принудительно указать javascript в качестве языка для IntelliSense в файле .ts... - person Etchelon; 22.06.2018
comment
Он будет обнаружен автоматически, вам не нужно ничего делать для JAVASCRIPT в .ts файле. - person Praveen Kumar; 22.06.2018
comment
Как вы можете видеть из моих изображений, он НЕ обнаружен! - person Etchelon; 22.06.2018

Вы можете включить checkJs в параметры компилятора. Параметры checkJs позволяют компилятору TypeScript проверять типы в коде JavaScript на основе базового вывода типов и JSDoc.

Другой способ — создавать модули самостоятельно: у TypeScript есть хорошая документация об этом.

person Basix    schedule 12.01.2020
comment
Это ничего не меняет. - person Alexis Tyler; 13.01.2020

Вы пробовали расширение «IntelliCode»?

Ссылку можно найти здесь: https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode

person fhery021    schedule 17.01.2020
comment
Пожалуйста, не просто публикуйте какой-либо инструмент или библиотеку в качестве ответа. По крайней мере, продемонстрируйте как он решает проблему в самом ответе. - person Yunnosch; 19.01.2020
comment
Описывать особо нечего, это добавляет intellisense в Visual Studio Code. У меня была та же проблема, и это расширение помогает, пока мне приходится работать над проектами Angular. Но вы правы, забыл добавить описание плагина как в рекомендациях. - person fhery021; 19.01.2020