JSDoc: "Любой" заполнитель для объектов с похожей структурой, вложенных
Я пытаюсь документировать следующий объект:
let x = {
stopCP: {
enabled: false,
method: "POST",
body: "STOP"
},
startCP: {
enabled: false,
method: "POST",
body: "START"
},
restartCP: {
enabled: false,
method: "POST",
body: "RESTART"
},
viewLog: {
enabled: false,
method: "POST",
body: "VIEWLOG"
}
};
Как видите, ключи "дочерних объектов" одинаковы. Конечно, я мог задокументировать каждое свойство вручную, но мне было интересно, смогу ли я сделать что-то вроде этого (то есть использовать какое-то "любое заполнение", например, *
):
/**
* @typedef {Object} options
* @prop {Object} * <--- I want this to apply to stopCP, startCP, restartCP and viewLog all at once
* @prop {Boolean} *.enabled <--- This should target all "enabled" properties of the child objects
* @prop {String} *.method <--- Same for this one
* @prop {String} *.body <--- Also same
*/
Кроме того, как бы я указать заданное количество строк? Я имею в виду что-то вроде этого:
/**
* @typedef {Object} options
* @prop {String} *.method ["POST" || "GET" || "PUT"] <---
*/
... который сказал бы мне, что я могу использовать только POST, GET или PUT в качестве значения этого свойства.