泛型在 Java 、C# 或者是其他语言中都存在,他的主要好处就是在你定义的时候不知道数据类型,你可以在使用的时候根据情况自定义这个数据 类型。
源码
- ts
//先定义一个简单的函数
//参数为 number 类型,返回值为 number 类型
// function Hello(num:number):number {
// return num;
// }
//上面的函数如果说是我们不确定需要传递的参数是什么类型的话就直接用不了了
//以之前的知识你可能会用如下的方法解决
// function Hello(arg:any):any {
// return arg;
// }
//上面的解决方法虽然可以用,但是这样写的话他就没有一个明显的规范了,容易出现类型的转换错误,这个一直是我们使用 TypeScript 所要避免的问题,所以很明显使用 any 是不合理的
//这个时候就可以使用泛型来解决上面所出现的问题
//书写格式 <T> 中间的大写字母 T 其实也可以是其他的大写字母, 但是我们常规的话都是使用的 T,所以就直接使用的 T
//声明一个函数 指定函数的类型为泛型
//同时要指定参数还有函数的返回值也是泛型,这样就是一个泛型的执行方法
function Hello<T>(arg:T):T{
return arg;
}
//使用泛型
//声明一个接收函数返回值的变量
//这里的 <string> 这个就是泛型的好处,当你之前声明函数时不知道数据类型,可以在使用的时候根据情况自定义这个数据类型
let output = Hello<string>('hello xiaochuan');//这里因为在前面定义了函数类型为 string 所以参数的类型也必须是 string
alert(output);//'hello xiaochuan' 这里返回的值就是传入的参数
- HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TypeScript 泛型-认识泛型</title>
</head>
<body>
<script type="text/javascript" src="GenericsDemo.js"></script>
</body>
</html>
- 浏览器效果图