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

Есть ли функция автоматического импорта для typescript в коде Visual Studio?

Есть ли какой-либо ярлык, который позволит мне автоматически генерировать мои импортные typescript? Подобно удалению ctrl + space рядом с именем типа и наличию объявления импорта, расположенного в верхней части файла. Если нет, как насчет intellisense для заполнения ссылочного пути модуля, так что я не буду делать это вручную? Мне бы очень понравилось использовать vscode, но для ручного импорта для typescript меня убивает.

4b9b3361

Ответ 1

Ходят слухи, что он поддерживает tsconfig.json(ну, лучше, чем слухи). Это позволит нам использовать все файлы для наших ссылок.

Ваша функция будет заключаться в создании автоматического импорта всех распространенных сторонних библиотек в типизацию. Возможно, автосканирование файлов и создание списка тех, которые нужно собирать. Было бы неплохо просто добавить несколько из них, используя tsd непосредственно из кода (в интерактивном режиме)?

Ответ 2

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

В основном, в Visual Studio при использовании расширения Web-Essentials файлы .ts можно перетащить в активный документ, чтобы автоматически генерировать комментарий относительного пути ссылки:

/// <reference path="lib/foo.ts" />

С помощью которого мы, конечно же, могли бы стереть его, потому что нам нужен оператор import, а не ссылочный комментарий.

По этой причине я недавно написал следующий фрагмент команды для Visual Commander, но его также легко адаптировать к другим вариантам использования. С помощью Visual Commander перетащите необходимый импорт в открытый документ, затем запустите следующий макрос:

using EnvDTE;
using EnvDTE80;
using System.Text.RegularExpressions;

public class C : VisualCommanderExt.ICommand
{
    // Called by Visual Commander extension.
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        TextDocument doc = (TextDocument)(DTE.ActiveDocument.Object("TextDocument"));
        var p = doc.StartPoint.CreateEditPoint();
        string s = p.GetText(doc.EndPoint);

        p.ReplaceText(doc.EndPoint, this.ReplaceReferences(s), (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers);
    }

    // Converts "reference" syntax to "ES6 import" syntax.
    private string ReplaceReferences(string text)
    {
        string pattern = "\\/\\/\\/ *<reference *path *= *\"([^\"]*)(?:\\.ts)\" *\\/>";

        var regex = new Regex(pattern);
        var matches = Regex.Matches(text, pattern);

        return Regex.Replace(text, pattern, "import {} from \"./$1\";");
    }
}

При запуске этого фрагмента все ссылки в активном документе будут заменены операторами import. Вышеприведенный пример преобразуется в:

import {} from "./lib/foo";

Ответ 3

Я считаю, что плагин под названием "TypeScript Importer" делает именно то, что вы имеете в виду: https://marketplace.visualstudio.com/items?itemName=pmneo.tsimporter.

Автоматически ищет определения TypeScript в файлах рабочей области и предоставляет все известные символы как элемент завершения, чтобы разрешить завершение кода.

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

С его помощью вы действительно можете использовать Ctrl + Space, чтобы выбрать то, что именно вы хотели бы импортировать.

Вы можете найти и установить его из меню Ctrl + Shift + X или просто вставив ext install tsimporter в меню быстрого доступа, открытое с помощью Ctrl + P.

Ответ 4

Атрибуты файлов в файле tsconfig.json позволяют вам устанавливать ссылочные импорты во весь проект. Он поддерживается кодом Visual Studio, но учтите, что если вы используете определенную цепочку построения (например, tsify/browsify), это может не сработать при компиляции вашего проекта.

Ответ 5

Это только что было выпущено в версия 1.18.

Из примечаний к выпуску:

Автоматический импорт для JavaScript и TypeScript

Ускорьте свое кодирование с помощью автоматического импорта для JavaScript и TypeScript. Список предложений теперь включает все экспортированные символы в текущем проекте. Просто начните вводить текст:

Глобальные символы теперь отображаются в списке предложений

Если вы выберете одно из предложений из другого файла или модуля, VS Code автоматически добавит для него импорт. В этом примере VS Code добавляет импорт для Hercules в начало файла:

После выбора формы символа другого файла автоматически добавляется импорт

Для автоматического импорта требуется TypeScript 2.6+. Вы можете отключить автоматический импорт, установив "typescript.autoImportSuggestions.enabled": false.