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;}