book icon indicating copy to clipboard operation
book copied to clipboard

記事への追記:TypeScriptにおける関数宣言の扱いについて

Open Kohki-Takatama opened this issue 10 months ago • 0 comments

問題提起

https://github.com/yytypescript/book/edit/master/docs/reference/functions/function-declaration-and-hoisting.md

こちらのページについて、以下の2点から
「TSにおける関数宣言について」訂正・追記が望ましいと考えます。

1. さらに丁寧な解説

TypeScriptにおける「constを使用した関数式」についての説明はありますが
functionから始まる関数宣言」については記載がありません。
関数宣言についても記載するのが親切かと思います。

2. 誤解の余地を減らし、適切な解説を追加

[画像1]の「定義前の関数を呼び出そうとするとコンパイラーが指摘してくれます」という説明について
この表現は「『関数宣言』『関数式』どちらでも、定義前の呼び出しに対し指摘してくれる」という誤解を生むかと思います。

実際には、TypeScriptであっても「関数宣言の定義前呼び出し」については特に指摘はしないはずです。
([画像2]では関数宣言hello()に関しては指摘がなく、関数式hello2()には指摘が入っている)

具体的な変更内容

以上の2点から、「TSにおける関数宣言について」訂正・追記が望ましいと考えます。

具体的には、

  1. 「定義前の関数を...」→「定義前の関数式を...」に変更
  2. 以下の説明を追加 関数宣言の場合は、JavaScriptと同じくエラーは発生しません。
    巻き上げにより、問題なく実行されます。
hello(); // Hello World

function hello() {
  console.log("Hello World");
};

PRの作成について

PRの作成は私の方でさせていただこうと考えておりますが、 管理者の方にご対応いただいても問題ございません。

以上、ご意見・ご検討よろしくお願いします。

参考画像

[画像1]
スクリーンショット 2024-04-15 6 53 01 [画像2]
スクリーンショット 2024-04-15 6 42 33

Kohki-Takatama avatar Apr 14 '24 22:04 Kohki-Takatama