河北省城乡和住房建设厅网站,网店代运营托管,游戏动画设计师需要学什么,crm系统网站TS泛型的使用#xff0c;类型别名泛型的使用#xff0c;泛型接口的使用#xff08;interface#xff09;
1.TS普通泛型的使用
export {}
// 泛型如何去理解 通俗一点
// 泛型其实就是类型的形参#xff0c;你传什么进去#xff0c;他就是什么
// T就是一个标识符#…TS泛型的使用类型别名泛型的使用泛型接口的使用interface
1.TS普通泛型的使用
export {}
// 泛型如何去理解 通俗一点
// 泛型其实就是类型的形参你传什么进去他就是什么
// T就是一个标识符其他的标识也可以但是默认情况下我们写T
function fnT(n:T):T{return n
}
fnnumber(100)
fnboolean(false)
// 上面这段代码也可以这样写
function fn1(n:number):number{return n
}
fn1(100)
function fn2(n:boolean):boolean{return n
}
fn2(true)// 也可以传递多个
function fn3T,G(n:T,m:G):T{return n
}
fn3number,boolean(100,true)
2.类型别名泛型的使用
// type ObjType {name:string,getName:()number}// let obj:ObjType {
// name:何志伟,
// getName(){
// return 2
// }
// }// 用泛型写可以这样来写
// 还可以再声明一个类型别名来替换他们
// 可以给泛型设置默认值
type ObjTypeN,G {name:N,getName:()G}let obj:ObjTypestring,number {name:何志伟,getName(){return 2}
}3.泛型接口的使用interface
// 接口的泛型
// interface Persons{
// name:string
// getName:()string
// }
// let obj2:Persons {
// name:何志伟,
// getName:(){
// return x
// }
// }// 泛型写法
interface PersonsN,G{name:NgetName:()G
}
let obj2:Personsstring,number {name:何志伟,getName:(){return 2}
}