Описание внутренней функции через JSDoc - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть такой код:

var f = function(){
    var obj = {};
    obj.keyA = "val";
    obj.keyB = function(arg2){}
    return obj;
}

arg2 - это {строка}.

Возможно ли точное описание этого кода с помощью JSDo c?

Как видите, этот код является попыткой реализовать что-то вроде объектно-ориентированного кода. Это потому, что я должен работать со старым JavaScript движком (ECMA 262 Edition 3, части Edition 4, 5 и 6). Кажется, этот движок не поддерживает классы (интерпретатор выдал синтаксическую ошибку).

Итак, возможно ли описать код выше так, чтобы JSDo c генерировал читаемую документацию?

1 Ответ

0 голосов
/ 18 апреля 2020

Я бы предложил использовать пользовательский тег typedef, который позволит вам в первую очередь описать внутренний тип, например,

/**
 * Definition for keyB
 * @callback KeyBCallback
 * @param {*} arg2
 * @returns {void}
 */

/**
 * Definition of an internal obj
 * @typedef {Object} InternalObj
 * @property {string} keyA - some property
 * @property {KeyBCallback} keyB - a callback stored in keyB
 */

Наконец, вам нужно поставить InternalObj в качестве возвращаемого значения для ваша функция например

/**
 * Function f
 * @returns {InternalObj}
 */
var f = function(){
    var obj = {};
    obj.keyA = "val";
    obj.keyB = function(arg2){}
    return obj;
}
...