book icon indicating copy to clipboard operation
book copied to clipboard

「Reactでいいねボタンを作ろう」に、TypeScriptならではの工程を加えるか、TypeScript要素が無い旨を明示しませんか?

Open kangetsu121 opened this issue 2 years ago • 3 comments

該当ページ

Reactでいいねボタンを作ろう

提案

  • 該当ページのソースコードを、型など TypeScript 固有の表現を使ったものにする
  • 「ソースコード自体は JavaScript でもそのまま動くものであり、TypeScript 固有の記法は使っていない」ことを明示する

のいずれかを採用する

詳細

このチュートリアルでは、TypeScriptとReactの両方を用いて、SNSでよく見かける「いいねボタン」のUIを実装します。

とあり、実際に React を用いていいねボタンの実装をしています。 また、末尾では次のように締めています。

以上でTypeScriptで作るReactいいねボタンは完成です。

しかし、ソースコード中で型などの TypeScript らしい要素は使っておらず、そのまま JavaScript でも動くものであるように見えます。 TypeScript は JavaScript のスーパーセットであり、tsx ファイルとして実装しているので「TypeScript を使っている」ことは偽ではありませんが、不慣れな読者には「何をもって TypeScript なのか」がわからず、混乱を招くのではないかと感じました。

このため、ソースコードに TypeScript らしさである型を足すか、上述のような「ソースコード自体は JavaScript でもそのまま動くものであり、TypeScript 固有の記法は使っていない」などの但し書きをどこかで明記するのはいかがでしょうか。

kangetsu121 avatar May 29 '22 13:05 kangetsu121

ご提案ありがとうございます!

該当ページのソースコードを、型など TypeScript 固有の表現を使ったものにする

明確化のための質問ですが、この場合チュートリアルの流れに組み込むとしたら、どんなものをイメージしていますか?😌

suin avatar May 29 '22 19:05 suin

ご確認ありがとうございます。

例えばですが、現在の最後のセクションである「ボタンに機能をつける」 の後に、「コードに型をつける」のセクションを加えるなどは考えられそうです。

この場合、それだけでちゃんと動く React のコードがあり、そこにさらに TypeScript による型を加えてコードを安全にする、という構成になり、「TypeScript が JavaScript のスーパーセットであること」「TypeScript と JavaScript の違い」などを実感できそうです。 また、動くコードを書く前に TypeScript を導入するより、一度完成してから追加するので、一度に入る情報量も抑えられそうかと思います。

私がまだ TypeScript を学習できていないため、見当違いでしたらすみません。

「ソースコード自体は JavaScript でもそのまま動くものであり、TypeScript 固有の記法は使っていない」ことを明示する

の案も含め、もちろん判断はお任せします。 ご検討よろしくお願いいたします。

kangetsu121 avatar May 30 '22 04:05 kangetsu121

具体的なイメージをお教えくださり、ありがとうございます!イメージを把握させていただきました。

ご提案を踏まえて、一度見直してみたいと思います!!

suin avatar May 31 '22 18:05 suin