县城做二手车网站,莆田 网站建设,郑州模板建站平台,网络推广公司招聘一、什么是泛型
在定义函数#xff0c;定义接口或定义class类的时候#xff0c;不先规定其类型#xff0c;在使用的时候进行定义类型。
二、使用
1、定义函数#xff1a;
// 函数类型
function AAT(arg:T):T{return arg
}
AAnumber(1)
AAstring定义接口或定义class类的时候不先规定其类型在使用的时候进行定义类型。
二、使用
1、定义函数
// 函数类型
function AAT(arg:T):T{return arg
}
AAnumber(1)
AAstring(li)// length的使用
// 方法一
// function fn2T extends string(arg:T){
// return arg.length
// }
// fn2string(lisi)
// 方法二
interface Is{length:number
}
function fn2T extends Is(arg:T){return arg.length
}
fn2string(lisi)
console.log(fn2string(lisi),3333)// 多类型联合声明
function fn3T,U(a:T,b:U) {return a
}
fn3number,string(1,lisi)
2、接口泛型
对请求参数和接口返回数据控制类型
interface Ilist{list:{id:number;name:string}[]
}
interface Idata{message:string;ok:number;data:Ilist
}
let data1:Idata {message:成功,ok:200,data:{list:[{id:1,name:张三},{id:1,name:张三}]}
}
3、class泛型
// class泛型
// class Person2{
// useName:string
// useAge:number
// constructor(name,age){
// this.useName name
// this.useAge age
// }
// }
// const p new Person2(张三,3)class Person2T,U{useName:TuseAge:Uconstructor(name:T,age:U){this.useName namethis.useAge age}
}
const p new Person2string,number(张三,3)