TS-泛型

匿名 (未验证) 提交于 2019-12-03 00:02:01

TSѧϰ

泛型

基本使用

//定义一个普通的函数 这样 只能返回一个number类型的数值 如果希望能传入一个任意类型的参数,则可以使用any function Hello(num:number):number{     return num }  //但是使用any的话 就失去了校验参数的意义 所以 我们就使用泛型 function Hello1(str:any):any{     return str } //泛型的基本写法 function Hello2<T>(arg:T):T{     return arg } let output = Hello2<string>("hello") //定义泛型的好处就是 可以在使用的时候去规定传进去的参数 而不是在定义方法的时候规定 alert(output) 

泛型的应用

function Hello3<T>(str:T[]):T[]{     return str } let list:Array<string> = Hello3<string> (['a','b','c']); for(let i=0;i<list.length;i++){     alert(list[i]) } 

泛型类型

interface Hello4{     <T>(arg:T):T; } function myHello<T>(arg:T):T{     return arg; } let HM:Hello4 = myHello; alert(HM<string>('1')) //这样写,就很不方便我们对接口的使用 所以 我们可以在接口中就定义好泛型 

更改后的泛型

interface Hello5<T>{     (arg:T):T; } function myHello1<T>(arg:T):T{     return arg; } let HM1:Hello5<number> = myHello; alert(HM(100)) 

泛型类

class HelloNumber<T>{     Ten:T;     add:(x:T,y:T) => T } let myHelloNumber = new HelloNumber<string>(); myHelloNumber.Ten = "hello1" myHelloNumber.add = function(x,y){     return x+y } alert(myHelloNumber.Ten) alert(myHelloNumber.add("hello",myHelloNumber.Ten))  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!