Не удается заставить eslint выдать предупреждение об отсутствии jsDoc на классах Ember, реквизитах, действиях - PullRequest
0 голосов
/ 21 февраля 2019

Я настраиваю eslint в своем проекте ember.Я хочу обеспечить, чтобы все функции, классы, действия и свойства были задокументированы с помощью jsDoc.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить принуждение работать над действиями, объявлениями компонентов или объектами.properties.

Первоначально я пробовал "require-jsdoc", но также отметил, что это правило устарело.Затем я установил eslint-plugin-jsdoc со следующим конфигом:

rules: [
  ...
  'jsdoc/check-examples': 0,
  'jsdoc/check-param-names': 1,
  'jsdoc/check-tag-names': 1,
  'jsdoc/check-types': 1,
  'jsdoc/newline-after-description': 1,
  'jsdoc/no-undefined-types': 1,
  'jsdoc/require-description': 1,
  'jsdoc/require-description-complete-sentence': 1,
  'jsdoc/require-example': 1,
  'jsdoc/require-hyphen-before-param-description': 1,
  'jsdoc/require-param': 1,
  'jsdoc/require-param-description': 1,
  'jsdoc/require-param-name': 1,
  'jsdoc/require-param-type': 1,
  'jsdoc/require-returns': 1,
  'jsdoc/require-returns-check': 1,
  'jsdoc/require-returns-description': 1,
  'jsdoc/require-returns-type': 1,
]

И все же не повезло.Любая идея, как заставить работать следующее:

// throw eslint warning if not documented
export default Component.extend({
  someProp: false, // throw eslint warning if not documented
  actions: {
    someAction() {} // throw eslint warning if not documented
  }
});

Все другие определения естественных функций работают, как и ожидалось, просто пытаясь заставить эти случаи работать.Спасибо!

1 Ответ

0 голосов
/ 15 августа 2019

Поскольку require-jsdoc устарело, правильный способ проверки наличия комментариев JSDoc для объявлений классов и функций - установка плагина eslint-plugin-jsdoc и использование правила jsdoc/require-jsdoc.

Как только вы наберете:

rules: [
  ...
  'jsdoc/require-jsdoc': 1,
  ...
]

ESLint начнет предупреждать о пропущенных комментариях.Если вы действительно включите какой-либо комментарий, то все другие правила, такие как jsdoc/require-description или jsdoc/require-param, будут применены.

Обратите внимание, что для правила jsdoc/require-jsdoc требуется некоторая конфигурация, если вы хотите применить егобольше, чем просто объявления функций.Например:

rules: [
  ...
  'jsdoc/require-jsdoc': [1, {'require': {
    FunctionExpression: true,
    ClassDeclaration: true
  }}],
  ...
]
...