ジェネリック型の使い方
TypeScriptのジェネリック型について学習したので忘れないようにメモ
ジェネリック型を使うタイミング
型がnumberやstringのように明確に決まっていない関数を宣言したい時などに使う
いつ型が決まるのかというと、関数を使用するタイミングで決まる(引数を渡すタイミング)
シグネチャの時点ではジェネリック型を使う
ジェネリック型の使い方
- <>で囲む
- 書く場所によってスコープが決まる
- 通常はTなど大文字のアルファベットを使う
例
フィルター関数を作成する
type Fileter = {
<T>(array: T[],f: (item: T) => boolean): T[]
}
上記のようにシグネチャを定義しておき、
このシグネチャを実装する時に適当に引数を渡せばTの部分が推論される
let filter: Filter = (array,f) => //...
filter([1,2,3], _ => _ > 2)
filter関数をFilter型で定義
引数に数値の配列を渡しているのでTはnumberと推論される
文字列の配列を渡せばTはstringとなる。