泛型
泛型的作用就是当我们不知道变量类型的时候,又想返回变量的类型
语法
泛型用的是<T,U,V>
这些符号,这些符号必须在函数括号的前面写
简单使用
js
const getArray = <T>(arg1: T, times: number = 5): T[] => {
let arr = [];
for (let i = 0; i < times; i++) {
arr.push(arg1);
}
return arr;
};
console.log(getArray("哈哈"));
//最后的结果
/*
[ '哈哈', '哈哈', '哈哈', '哈哈', '哈哈' ]
*/
泛型变量
当我们使用泛型的时候,你在处理这个数据的时候就必须把这个数据当作任意类型来处理.这就意味着不是所有类型做的操作都不能做,不是所有类型都能调用的方法不能调用
js
const getLength = <T>(arg1: T): number => {
return arg1.length;
};
//直接报错
接口形式来定义泛型
js
interface GetArray {
<T>(arg: T, times: number): T[];
}
const getArray: GetArray = <T>(arg: T, times: number): T[] => {
return new Array(times).fill(arg);
};
泛型约束(继承) extends
js
interface a1 {
name: string;
}
const getLength = <T extends a1>(a1: T): T => {
return a1;
};
getLength({ name: '哈哈', kuanshi: '呵呵呵' });