型ジェネリクス
Typescriptの型定義をするときに、動的に型を変更したい時があると思います。
そんな時に役立つのがジェネリクス。
一番かんたんな使い方を以下に記載します。
// 引数をそのままconsoleに出力する(型を動的に変える)
const hoge = <T> (arg: T): T => {
console.log(arg)
}
ただ、これだけだと型定義がゆるすぎる時には、extendsを使用し型に縛りをつけます。
// extendsを使用するとextends以降の型を含むものしかTに入れることができなくなる
type fuga = {
[hoga: string]: string
}
const hoge = <T extends hoga> (arg: T): T => {
console.log(arg)
}
<参考>
↓わかりやすい
↓いろいろなパターンが書かれている