Есть ли какой-либо ярлык, который позволит мне автоматически генерировать мои импортные typescript? Подобно удалению ctrl + space рядом с именем типа и наличию объявления импорта, расположенного в верхней части файла. Если нет, как насчет intellisense для заполнения ссылочного пути модуля, так что я не буду делать это вручную? Мне бы очень понравилось использовать vscode, но для ручного импорта для typescript меня убивает.
Есть ли функция автоматического импорта для typescript в коде Visual Studio?
Ответ 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
.