首先介绍下泛型的三种方法,函数声明,函数表达式,箭头函数
function Interview2<T>(name:T):T{
return name
}
let mn=function<U>(name:U):U{
return name
}
let mn2=<T>(name:T):T=>{
return name
}
当用到反省逻辑时
function Interview7<T>(length:number,value:T):Array<T>{
let d=[];
for(let i=0;i<length;i++){
d[i]=value
}
return d
}
Interview7<string>(3,'f')
Array<T>可简写为T[]
泛型中多个参数:
function Interview8<N,S>(sum:[N,S]):[N,S]{
return [sum[0],sum[1]]
}
Interview8([1,'e'])
下面介绍下枚举:
先说名去对象出来的是索引,去索引出来的是值
enum Color3 {Red=1.5,Green,Blue=<any>'b'};
//let c3 = Color3.Blue; // b
let c3:string = Color3['b']; //Blue
let dd1:string=Color3['1.5']//取出来的是Red
let dd2:number=Color3.Green//取出来的是2.5
console.log(dd1)
console.log(c3);//blue
console.log()