Изменить: технически это вопрос из двух частей. Я выбрал лучший ответ, который охватывает вопрос в целом и связан с ответом, касающимся конкретного вопроса.
Как лучше всего документировать анонимные объекты и функции с помощью jsdoc?
/**
* @class {Page} Page Class specification
*/
var Page = function() {
/**
* Get a page from the server
* @param {PageRequest} pageRequest Info on the page you want to request
* @param {function} callback Function executed when page is retrieved
*/
this.getPage = function(pageRequest, callback) {
};
};
Ни объект PageRequest
, ни объект callback
не существуют в коде. Они будут предоставлены getPage()
во время выполнения. Но я хотел бы иметь возможность определить, что такое объект и функция.
Я могу уйти от создания объекта PageRequest
для документирования того, что:
/**
* @namespace {PageRequest} Object specification
* @property {String} pageId ID of the page you want.
* @property {String} pageName Name of the page you want.
*/
var PageRequest = {
pageId : null,
pageName : null
};
И это нормально (хотя я открыт для лучших способов сделать это).
Как лучше всего задокументировать функцию callback
? Я хочу указать в документе, что, например, функция обратного вызова имеет вид:
callback: function({PageResponse} pageResponse, {PageRequestStatus} pageRequestStatus)
Любые идеи, как это сделать?