Документирование массива типа T в формате vsdoc для javascript. Нашел ли я ошибку? - PullRequest
2 голосов
/ 09 июня 2011

Следуя этим рекомендациям по документации vsdoc , я не смог заставить intellisense правильно работать для массива заданного типа. Вот некоторый код, который демонстрирует проблему

function MyType() {
    /// <summary>Class description here</summary>
    /// <field name="PropertyA" type="Boolean">Description of Property A</field>
    /// <field name="PropertyB" type="String">Description of Property B</field>
 }
MyType.prototype.PropertyA = false;
MyType.prototype.PropertyB = "";

function testFunc(arrayOfMyType) {
    /// <summary>Description of testFunc</summary>
    /// <param name="arrayOfMyType" type="Array" elementType="MyType">asdfasdf</param>

    // right here, I should get the intellisense for an item of type MyType but I don't
    arrayOfMyType[0].

}

Сразу после arrayOfMyType[0] Я должен получить IntelliSense для MyType, но я не получаю. Я также попробовал цикл for-in, чтобы увидеть, вызовет ли это правильную интеллигентность, но это не так. Я должен отметить, что arrayOfMyType имеет правильное значение intellisense для Array, и если я изменю его с Array на MyType, тогда я получу правильное значение intellisense для этого, но не как Array типа MyType как прокомментировано в примере.

На данный момент у меня есть доступ только к pre-sp1 vs2010, поэтому я не уверен, что это ошибка, которую они исправили или нет.

Может ли кто-нибудь сказать мне, если

  • Я неправильно пишу свои комментарии к vsdoc
  • Я прав или нет относительно ожидания получения intellisense для MyType в этой строке
  • Intellisense для приведенного выше фрагмента работает в vs2010 sp1

Ответы [ 2 ]

3 голосов
/ 23 января 2013

http://msdn.microsoft.com/en-us/library/vstudio/hh542725.aspx

function Point(x, y) {
    /// <summary>My class.</summary>

    /// <field name="x" type="Number">X coordinate</field>
    this.x = x;

    /// <field name="y" type="Number">Y coordinate</field>
    this.y = y;
}

function testFunc(arrayOfMyType) {
    /// <summary>Do a thing</summary>
    /// <param name="arrayOfMyType" type="Array" elementType="Point">Array of Points</param>

    // Do something
}
1 голос
/ 10 июня 2011

VS ItelliSense не поддерживает все функции комментариев к документам JS XML.Я думаю, это один из неподдерживаемых.

...