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))
来源:51CTO
作者:
链接:https://blog.csdn.net/qq_41219789/article/details/100704947