hro19 / Typescript_Katsutadai

Typescript workshop in 勝田台
0 stars 0 forks source link

ジェネリクスの基礎 #14

Open hro19 opened 1 year ago

hro19 commented 1 year ago
const repeatStr = (value:string,times:number):string[]=>{
 return new Array(times).fill(value);
}

const repeatNum = (value:number,times:number):number[]=>{
 return new Array(times).fill(value);
}

const repeatBolean = (value:boolean,times:number):boolean[]=>{
 return new Array(times).fill(value);
}

上記のような関数があったとしますが、この3つの関数はジェネリクスを使って1つの関数として作成することが出来ます。 どのようにすればよいでしょうか。

hro19 commented 1 year ago
const repeat = <T>(value: T, times: number): T[] => {
  return new Array(times).fill(value);
};

// 関数の使用例
const strResult = repeat("Hello", 3); // ["Hello", "Hello", "Hello"]
const numResult = repeat(42, 4); // [42, 42, 42, 42]
const boolResult = repeat(true, 2); // [true, true]