2

Я хотел бы получить поддержку Intellisense в Visual Studio для объектов параметров, которые я использую в своих вызовах метода.Visual Studio Javascript Intellisense - объект options

Распространено настроить вызов функции в Javascript с защелкой-все параметры объекта - для Ajax вызова Пример JQuery использует:

$.ajax(settings); 

Где настройки только объект, как:

$.ajax({ 
    url: '/blah', 
    data: { stuff: 1 }, 
    method: 'POST', 
    // etc 
}); 

Хотя это неявный объект, свойства следуют за определенным классом. Обычно, когда у вас есть что-то подобное, это важно для Intellisense/описания кода, но не для работы кода, вы помещаете это в файл -vsdoc.js. Но как я могу заставить Intellisense придумать этот объект?

Я, например, посмотрел на jquery-vsdoc.js, так как он предоставлен Microsoft - безрезультатно. В одном случае они просто набирают его как «Объект», а другие просто не документируют его вообще.

Я попробовал это, например - в fillTable.js:

function fillTable(options) { 
    /// <param name="options" type="FillTableOptions">Options to fill table</param> 

И в fillTable-vsdoc.js:

function FillTableOptions() { 
    /// <field type="String">Id property</field> 
    this.idProp = 'Id'; 

Но я для Intellisense является то, что тип FillTableOptions - когда я создаю объект, я не получаю помощь Intellisense при выборе свойств.

Итак, как мне получить поддержку Intellisense для свойств объекта, подобного этому?

ответ

2

Я не знаю, как получить true Поддержка Intellisense по параметрам объекта за пределами TypeScript ... однако вы можете в некоторой степени отформатировать узлы документации параметров.

Например, вы можете ввести любой текст, который вам нравится, в атрибут 'type', если он является непрерывным блоком текста (не содержит пробелов или символов).

Ex. 1: аннотации пользовательского типа.

function where(collection, evaluator) { 
    /// <summary> 
    /// Equivalent to a WHERE clause. 
    /// </summary> 
    /// <param name="collection" type="array||object">Accepts an array or associative array (object).</param> 
    /// <param name="evaluator" type="function(key,value,index)">Applied to each element of the @collection to determine which elements to return.</param> 
    /// <returns type="array||object" /> 
} 

Ex. 2: документация по многострочным параметрам (&#10; - новая строка).

function modal(options) { 
    /// <summary> 
    /// Displays a modal window. 
    /// </summary> 
    /// <param name="options" type="object||string"> 
    /// &#10;If a string is passed in, will be treated as @heading. 
    /// &#10; 
    /// &#10;* heading {string} The heading text. 
    /// &#10;? content {string} The text content; overridden by @htmlContent. 
    /// &#10;? htmlContent {string} Use when HTML content is desired; overrides @content. 
    /// &#10;? settings {object} FancyBox.js settings. 
    /// </param> 
} 

Это не даст вам истинное Intellisense для параметров объекта таким образом, что машинопись будет, но это даст вам больший контроль над моделированием замечаний и поможет уменьшить неопределенность.

+1

'
' работает отлично для новой линии – Adaptabi

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