book icon indicating copy to clipboard operation
book copied to clipboard

読者が混乱しないように、ジェネリクスのデフォルト型引数のサンプルコードを分かりやすくしませんか?

Open koh124 opened this issue 2 years ago • 1 comments

Typescript初心者です。こちらの書籍で学習を進めさせていただいており、大変参考になります。 良質な書籍を無償で提供してくださり、本当にありがとうございます。

【問題のページ】 https://typescriptbook.jp/reference/generics/default-type-parameter

【問題】 問題のページの下記部分で、デフォルト型引数を指定したと記述があるのにも関わらず、MyErrorEventにはデフォルトの型引数のErrorが設定されていません。MyErrorEventをホバーすることでデフォルト型引数の構文を見ることはできましたが、初学者だったため少し混乱してしまいました。こちらについて、自分と同じような初学者のこのような混同を避けるためにも、修正した方が良いのではないかと思います。

そこで、デフォルト型引数としてErrorを指定することでジェネリクスの型Tは必要な時だけ指定して、何も指定してない場合は自動でErrorとすることができます。

// デフォルト型引数を指定した事で Error の型指定を省略できる
const errorEvent: MyErrorEvent = {
  error: new Error("エラーです"),
  type: "syntax",
};
 
const networkErrorEvent: MyErrorEvent<NetworkError> = {
  error: new NetworkError("ネットワークエラーです"),
  type: "network",
};

koh124 avatar Dec 10 '22 07:12 koh124

改善アイディアですが、サンプルコードが実用寄りのコードになっていますが、実用から離れてもいいので、「デフォルト型引数」が際立つもっと単純なものにしたほうがいいかもしれません。そのうえで、実用例があれば後述したほうがいいかもしれません。

suin avatar Feb 25 '23 21:02 suin