Generics
Generic functions
function identity(arg: any): any {
return arg;
}
// output 的 type 为 any,这没意义
let output = identity(1);
使用泛型
function identity<T>(arg: T): T {
return arg;
}
// output 的 type 为 number
let output = identity(1);
在定义泛型时,T 为 type variable,用于 types 而不用于 values。
在使用泛型时,有两种方式
let x = identity<number>(1);
let y = identity(1); // type argument inference
通常省略 type, 让 compiler 推断。如果 compiler 失败,再明确指定 type。
Generic Types
-