@Dimionus

Как правильно комментировать код Vue?

Например, есть код:
...
props: {
  items: {
    validator(items) {
      function isValid() {
        if (Array.isArray(items) !== true) return false;
        return items.every((item) => {
          if (typeof item !== 'object' || item.constructor !== Object) return false;
          if (typeof item.id !== 'string') return false;
          if (typeof item.title !== 'string') return false;
          if (typeof item.sub !== 'object' || item.sub.constructor !== Object) return true;
          return isValid(item.sub);
        });
      }
      
      return isValid(items);
    },
    required: false,
  },
},
...


Не могу понять, как можно задокументировать валидатор для items и сам items, чтобы можно было сгенерировать правильную документацию через jsdoc\jsdoc-vuejs и пройти проверки линтера eslint-plugin-jsdoc.

Полагаю должно быть что-то такое:
/**
 * @param {object[]} items
 * @param {string} items[].id
 * @param {string} items[].name
 * @param {object[]} items[].sub
 * @param {string} items[].sub[].id
 * @param {string} items[].sub[].name
 */

Но jsdoc вообще не видит эту конструкцию

UPD
При комментировании аргументами из плагина jsdoc-vuejs
/**
 * @vue-prop {object[]} items
 * @vue-prop {string} items[].id
 * @vue-prop {string} items[].name
 * @vue-prop {object[]} items[].sub
 * @vue-prop {string} items[].sub[].id
 * @vue-prop {string} items[].sub[].name
 */

В сгенерированой доке пропа items не собирается в объект, а отображается отдельно каждой строкой
Для jsdoc использую шаблон minami
  • Вопрос задан
  • 4914 просмотров
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Используйте typescript + https://github.com/vuejs/vue-class-component
Из коробки с типизацией и документацией во vue печалька.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы