【TypeScript】Arrow Functions で Generics を使う方法
TypeScript でアロー関数(Arrow Functions)を書く際に、Generics を使おうとすると、素直に書いた場合うまくコンパイルされない場合があります。
例えば、以下のような T型 の値を引数に取り、そのまま引数を return する関数があるとします。
const identity = <T>(arg: T): T => { return arg; }
これを素直に書くと、React.createElement()
メソッドとして認識されてしまい、エラーとなります。
これを防ぐには、<T>
の部分を <T, >
もしくは <T extends unknown>
のように小細工してやる必要があります。
const identity = <T, >(arg: T): T => { return arg; }
const identity = <T extends unknown>(arg: T): T => { return arg; }