関数でGenericsを使う方法について

基本

関数の場合、関数名のあとに<型名>を付けて定義します。 以下の例では、<T>となっている箇所で、型がTとなっています。

function getObject<T>(value: T): { object: T } {
  return { data: value };
}

例 1個目は、Genericsの型を明示しています。2個目は省略(引数から推論できるので省略可能)しています。

function getObject<T>(value: T) {
  return { object: value };
}

const s = getObject<string>('abc');
console.log(s);

const n = getObject(123);
console.log(n);

実行結果は以下のようになります。

{ object: 'abc' }
{ object: 123 }