JSDoc: «Любой» заполнитель для объектов с похожей структурой, вложенных - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь задокументировать следующий объект:

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 в качестве значения этого свойства.

...