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
.