eslint-plugin-react-hooks: lint rule to enforce that `useMemo` returns a value
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 251k
- フォーク
- 51.4k
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 53
説明
Nothing prevents developers from calling useMemo without a return:
import { useMemo } from "react";
useMemo(() => {
console.log("Yippee!");
}, []);
[TypeScript playground showing no errors]
Calling useMemo without a returned value is somewhat equivalent to calling useEffect without a returned value. Judging by the few times I've seen it happen, it's likely a case of a developer either confusing the two hooks or forgetting to return the memoized value.
Suggestion: can we add a lint rule to flag useMemo calls that don't definitely return a value? It could have a suggestion fixer to switch to useEffect.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
eslint-plugin-react-hooks パッケージで、まず既存の hook ルールとそのテストを読みます。値を確実には返さない useMemo コールバックをルールがどのように識別すべきか、またオプションの useEffect に関する提案を対象範囲に含めるかどうかを判断します。対象となるケースが一貫して報告され、有効なコールバックと無効なコールバックのテストがあれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- eslint, javascript, react
- 領域
- frontend, tooling
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100