スタートページ>
Javascript>
TypeScript
TypeScriptの概要←
型指定の基本(1)←
型指定の基本(2)←
型指定の基本(3)←
型指定の基本(4)
Genericsは抽象的な型引数を使用して、型の異なる指定を統合するものです。
例えば、「x が数値型でなければならない」ことを、「引数 x は数値型であり、その値を数値型として戻す」関数でチェックするとします。
function 数値型チェック(x: number): number {
return x;
}
var y = 数値型チェック(123);
var z = 数値型チェック('abc');
同様に、文字列型については、次の関数になります。
function 文字列型チェック(a: string): string {
return a;
}
var b = 文字列型チェック(123);
var c = 文字列型チェック('abc');
これを一つにまとめるには、number や string の型指定子を変数にすることが必要です。
その型指定子の変数名は、慣習的に T, U が用いられます。そして、引数として記述するには、型指定子を < > で囲みます。
1 function 型チェック<T>(x: T): T { 2 return x; 3 } 4 var y = 型チェック<number>(123); 5 var z = 型チェック<number>('abc'); 6 var b = 型チェック<string>(123); 7 var c = 型チェック<string>('abc');
例えば、行4のとき型チェック行1は次のようになります。
function 型チェック<number>(123: number): number {
ClassでのGenericsおよび複数の型指定子の例を示します。
1 class 型クラス<T, U> { 2 x: T; 3 a: U; 4 constructor(x:T, a:U) { 5 this.x = x; 6 this.a = a; 7 } 8 } 9 var p = new 型クラス<number, string>(123,'abc'); 10 var q = new 型クラス<string, number>('abc',123); 11 var r = new 型クラス<number, string>('def','abc'); 12 var s = new 型クラス<string, number>(123, 456);