Скажите eslint, чтобы проверить функцию для конкретного правила - PullRequest
0 голосов
/ 19 июня 2019

tl; dr Есть ли способ сказать eslint, что он должен проверять определенную функцию на соответствие правилу по моему выбору?

Для контекста я недавно установил правило eslint-plugin-react-hooks. Он проверяет, что хуки создаются только внутри функциональных компонентов.

function Component(props) {
  const [state, setState] = React.useState(false); // passes the linter
  // ...
}

class Component extends React.Component {
  render() {
    const [state, useState] = React.useState(false); // fails the linter
    // ...
  }
}

Я создал служебную функцию, которая вызывает React.useState, но эта служебная функция вызывается внутри функционального компонента.

// utility function
function makeHook(init) {
  const [state, setState] = React.useState(init); // fails linter (as expected)
  return { state, setState };
}

function Component {
  const hookObj = makeHook(false); // NOT CHECKED BY LINTER
  // ...
}

Я хотел бы украсить makeHook так, чтобы эслинт знал, что он проверяет его использование, как если бы это был вызов React.useState.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...