function join(a: string | number, b: string | number) {
return `${a}${b}`
}
// 需求 a是string,则b也要传递string
// a是number,则b也要传递number
/*一般使用**********************************/
// 泛型 generic,泛指的类型
function join_2<ABC>(a: ABC, b: ABC) {
return `${a}${b}`
}
join_2<string>('1', '2');
join_2<number>(1, 2);
/*其他用法**********************************/
function join_3<ABC>(params: ABC[]) { // 或者这种写法 params: Array<ABC>
return params;
}
join_3<string>(['123', '234']);
/*多个泛型**********************************/
function join_4<T, P>(a: T, b: P) {
return `${a}${b}`;
}
join_4<number, string>(1, '2');
join_4('1', 1);// 如果不写泛型,则TS会根据参数去推断
/*要求返回值**********************************/
function join_5<T>(a: T): T {
return a;
}