小ネタ。
TypeScriptでは、アロー関数でジェネリック関数を定義できる。
const generic = <T>(value: T) => ...
拡張子が .ts
のファイル内では問題ないが、 .tsx
のファイル内でこの記法を用いると、 <T>
がタグの開始とみなされ、以下のコンパイルエラーが発生する。
JSX 要素 'T' には対応する終了タグがありません。ts(17008)
別ファイルに分けるしかないかなと思って調べたところ、以下の記事を発見。
記事の通り、型引数の後ろにカンマを付けると、エラーが解消された。
const generic = <T,>(value: T) => ...