コンパイラと型指定によるメリットについて

microsoftに書いてあった

明示的に型を指定することによってコンパイラの仕事が減りコンパイルの速度が速くなります。

コンパイラが推測するよりも先に型が見つかると推測する処理を飛ばせるため結果的にコンパクトになります。

つまり匿名型の場合コンパイラにとってはコンパクトではなく肥大化しているものと同義だという意味です。

書き手はコンパイラの仕事を減らす必要があり、探させるより明確に導いて見つけさせた方が速くなるってことですね。

プロジェクトの全ての関数ファイルに型を付け終わりました。

実際に、anyから本来の型で書き直したらビルドの速度はかなり速くなった気がします。

引数に型を付けるのが嫌いなので全てジェネリクスとReact.FCで付けています。

_appには戻り値の型にJSX.Elementを付けて型引数に優秀なAppPropsを付けています。

(_appにReact.FCは採用していない)

それはそうと最近page配下のファイルは全てexport constで書くのがいい気がしてきてる。

おまけ

JSX.Elementの中

ReactElement<any, any>

これはAppの戻り値の型に使われる。

ReactNodeの中

boolean | ReactChild | ReactFragment | ReactPortal | null | undefined

ReactElementの中

string | JSXElementConstructor<any>

JSX.Elementの中にReactElementが内包されているため、

ReactElementを直で使う機会は無いと思っていい。