Javascript /// <field type =“?”>用于实例化自定义对象</field>

时间:2011-02-23 15:55:17

标签: javascript visual-studio comments

尝试习惯Visual Studio的XML javascript注释语法。我有一个关于类型的问题。假设我有一个自定义类型,如...

namespace.types.User = function(_id, _name) {
    /// <field name="id" type="Number">ID of the user</field>
    /// <field name="name" type="String">Name of the user</field>
    this.id = _id;
    this.name = _name;
};

如果我想稍后在<field>中引用该类型,我会做类似的事情......

namespace.session = function() {
    /// <field name="CurrentUser" type="namespace.types.User">The current User of the session</field>
    this.CurrentUser = new namespace.types.User('foo', 'bar');
};

但是,当我这样做时,Intellisense会向我显示.CurrentUser表示的说明,它不会显示.id.name的任何建议。换句话说,它就像是一个没有其他类型数据的普通对象。

如何获取VS智能以获取更丰富的自定义对象描述?

1 个答案:

答案 0 :(得分:1)

尝试为函数签名中的参数添加xml注释。

namespace.types.User = function(_id, _name) {
   /// <param name="_id" type="Number" /></param>
   /// <param name="_name" type="String" /></param>
}

似乎不是///&lt; field&gt;&lt; / field&gt;语法有助于字段值的intellisense,它只从分配中获取智能感知。因此,由于它不知道传入参数的类型是什么,因此它们不会传递到字段上。

你会认为添加///&lt; field&gt;&lt; / field&gt;将覆盖字段的intellisense类型。特别是如果您曾使用IDE或支持来自代码注释的intellisense的工具。但目前在VS 2010中似乎并非如此。

此外,您可能不希望将名称空间用作变量或标识符,即使它是示例或替换实际名称空间。

命名空间是javascript的保留关键字。 (虽然有些人喜欢mozilla保留了包裹)。