reactjs / reactjs/react.dev

useState of the Tuple type is not safe

オープン
#5,940 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
JavaScript
スター
11.8k
フォーク
7.9k
平均マージ
1日 11時間
マージ済み PR(30日)
11

説明

I'm reading TS and noticed a vulnerability like UseState, as described in the documentation, we get a tuple of two elements.

The tuple in TS has a vulnerability because you can use array methods like pop, push on them. Which isn't safe because TS doesn't compute the type after that, it stays.

I suggest adding a readonly modifier to avoid these situations

  const state = useState();

  state.pop();

  const [value, setValue] = state;
  
  // setValue is undefined, but ts shows that the value is of type React.Dispatch<React.SetStateAction<undefined>

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

この issue では、react.dev 内のファイル、テスト、エントリーポイントが指定されていません。まず、要求されている readonly の useState タプルがドキュメントに属するのか、React の TypeScript 型定義に属するのかを判断し、その後、既存の useState の例と型の挙動を調査してください。タプルを安全でない形で変更できず、ドキュメント化された TypeScript の挙動が検証されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
react, typescript
領域
documentation
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。