前端TS的泛型!!!

泛型

指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用函数,接口、类的时候再指定具体类型的一种特性。

需求: 定义一个函数,传入两个参数,第一个参数是数据,第二个参数是数量,函数的作用: 根据数量产生对应个数的数据,存放在一个数组中。

 function getArr1(value:number,count:number) :number []{
        //根据数据和数量产生一个数组
        const arr :number[] = [] 
        for (let i = 0; i(x:T,y:T):T[]{
    return [x,y]
};
f7(1.2);
f7('x','y');
f7(true,false);

1多个泛型参数的函数

一个函数可以定义多个泛型参数。

泛型变量T T表示任何类型

function getMsg(value1:K,value2:V):[K,V]{
    return [value1,value2]
}
console.log(arr1[0].split(''))
console.log(arr1[1].toFixed(1))

2泛型约束

泛型约束关键字extends 你一般情况下你使用泛型会报错,你就必须使用泛型约束来约束一下,来规定他的数据类型,受到了接口定义类型的约束。

function f9(x:T):number{
    return x.length
};
f9('hello itlove')
​
泛型约束 extends 
​
interFace LengthNum {
    return x.length
};
function f10(x:T):number{
    return x.length
};
f10('hello itlove')

3泛型接口

定义函数,判断传入的参数是否相同。

let fn1 = function(s1,s2){
    return s1 == s2
};
fn1('a','b');
​
let fn2 = function(s1:string,s2:string):boolean{
    return s1==s2
};
fn2('a','b')
​
另一个函数
let fn3 = function(x:string,y:string):boolean{
    if(x>y){
        return true;
    }else{
        return false;
    }
};
fn4('x','y')
​
定义规范
interface  InspectFn{   
    (x:T,y:T):boolean;
}
​
let fn1:InspectFn = function(s1,s2){
    return s1 == s2
};
fn1('a','b');

你可能感兴趣的:(前端,开发语言,typescript)