1.泛型
在定义函数或者接口或者类的时候,
不能预先确定要使用的数据类型
而是在使用函数、接口、或者类的时候才能够确定数据类型
这个时候我们就需要使用的是泛型
2.功能描述
我们需要实现一个方法,方法中有两个参数,
第一参数表示的是传入的内容值,第二个参数表示的数组的个数(长度)
根据内容值产生对应个数,然后存放在数组中,最后返回来
3.分析上述功能
由于传入的内容值可能是字符串,也有可能是数字,也有可能是布尔类型的;
只有在传递的时候我们才知道数据的类型
这个时候我们就需要使用泛型<T>
4.实现上述功能
function getArr<T>(cont:T,len:number) :T[]{
// const arr:T[]=[] //这是一个泛型数组 或者这样写
const arr: Array<T> = []; //泛型必须要有一个初始值
for (let i = 0; i < len;i++) {
arr.push(cont)
}
return arr
}
const arr1 = getArr<number>(11.1,3);
console.log(arr1)
5.简单说明上述代码
function getArr<T> 表示该函数中的类型值是不确定的,
只有在传递的时候才知道,因此使用了泛型。
cont:T 内容值是泛型
function getArr<T>(cont:T,len:number) :T[]{ }
返回来的是一个数组泛型,数组中值类型不确定
const arr: Array<T> = []; 和 const arr:T[]=[]
声明一个数组泛型,必须给一个初始值。【重要】
const arr1 = getArr<number>(11.1,3);
传递的类型值是数字
6.函数中有多个泛型的参数
// 多个泛型参数的函数:函数中有多个泛型的参数
function getMsg<K,T>(cont1:K,cont2:T):[K,T] {
return [cont1,cont2]
}
const arr = getMsg<string,number>('哈哈',2);
7.简单说明一下上述的代码
由于第一个类型的值和第二个类型的值都是不确定的,
所以有了泛型
function getMsg<K,T] { }
在使用的时候const arr = getMsg<string,2);
我们的第一个值是字符串,第二个值是数字
原文地址:https://www.cnblogs.com/IwishIcould
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。