Visual Studio Javascript Intellisense - 选项对象
Posted
技术标签:
【中文标题】Visual Studio Javascript Intellisense - 选项对象【英文标题】:Visual Studio Javascript Intellisense - options object 【发布时间】:2013-02-09 10:16:56 【问题描述】:我想在 Visual Studio 中为我在方法调用中使用的选项对象获得 Intellisense 支持。
在 javascript 中使用包罗万象的选项对象来配置对函数的调用是很常见的——例如 jquery 的 Ajax 调用使用:
$.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 支持?
【问题讨论】:
【参考方案1】:我不知道有什么方法可以在 TypeScript 之外获得对对象参数的 true Intellisense 支持...但是,您可以在一定程度上格式化参数文档节点。
例如,您可以在“类型”属性中输入您喜欢的任何文本,只要它是连续的文本块(不包含任何空格或中断字符)。
例如。 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" />
例如。 2:多行参数文档(&#10;
是新行)。
function modal(options)
/// <summary>
/// Displays a modal window.
/// </summary>
/// <param name="options" type="object||string">
/// If a string is passed in, will be treated as @heading.
///
/// * heading string The heading text.
/// ? content string The text content; overridden by @htmlContent.
/// ? htmlContent string Use when HTML content is desired; overrides @content.
/// ? settings object FancyBox.js settings.
/// </param>
这不会像 TypeScript 那样为您提供真正的对象参数智能感知,但它可以让您更好地控制 cmets 的样式,并有助于减少歧义。
【讨论】:
以上是关于Visual Studio Javascript Intellisense - 选项对象的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio Javascript扩展功能比较