一、泛型的定义
是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
//泛型的简单使用
let arr1:Array<number>=[1,2,3]
let arr2:Array<string>=['1','2']
二、函数的泛型写法
注意:T就是一个标识符,也可以写成其他的代替,但是一般都是T、U、M
//函数使用单个泛型
function fun1<T>(arg:T):T{
return arg;
}
fun1<string>('123');
fun1<number>(1);
//函数使用多个泛型
function fun2<T,U>(a:T,b:U){
}
fun2<string,number>('1',2);
fun2<number[],boolean>([1,2,3],true);
2.1 需求:函数的参数返回值必须有length属性
function fun3<T extends string>(arg:T){
return arg.length
}
fun3<string>('123');
//T extends string表示T必须是string的子类
2.2 普通字符串或者数组成员也是字符串的,就需要这样写了(联合声明)