1: 2016-03-19 (土) 06:48:49 njf[5] [6] [7] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ジェネリックとは型の変数のような物。 | ||
+ | たとえば引数と戻り値の関数を考える。number型なら、 | ||
+ | function testFunction(n:number):number{ | ||
+ | return n; | ||
+ | } | ||
+ | |||
+ | となる。 | ||
+ | |||
+ | 引数と戻り値が同じという条件のみ課したいが、 | ||
+ | |||
+ | function testFunction(n:any):any{ | ||
+ | return n; | ||
+ | } | ||
+ | |||
+ | としてしまうとそうはならない。 | ||
+ | |||
+ | そこで、ジェネリックを使う。 | ||
+ | |||
+ | function testFunction<T>(n:T):T{ | ||
+ | return n; | ||
+ | } | ||
+ | |||
+ | 使うときは、「<T>」の部分に型を入れる。 | ||
+ | |||
+ | console.log(testFunction<number>(2)); // => 2 | ||
+ | console.log(testFunction<string>("string")); // => string | ||
+ | |||
+ | つまり、あたかも型を変数のように扱っている。 |
(This host) = https://njf.jp