泛型
泛型:软件工程中,不仅要创建一致的定义良好的API,同时也要考虑可重用性,组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时提供了十分灵活的功能。
在像c#和java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据,这样用户就能用自己的数据类型来使用组件。
所以,泛型是解决类、接口、方法的复用性,以及对不特定数据类型的支持。
泛型函数
// 普通的对不同类型函数的实现
// 对每个类型都实现一遍函数 或 用any数据类型
function getDate(value:any):any {
}
// 缺点:any放弃了类型检查,且对要求传入什么,返回什么的情况不可以
// 因为使用any就说明传入的参数类型和返回的参数类型可以不一致
// 泛型可以支持不特定的数据类型
// T 表示泛型,具体什么类型是调用这个方法时决定的
// 1. 传入什么,返回什么
function getDate<T>(value:T):T {
return value;
}
getDate<number>(123) // 正确
getDate<string>('123') // 错误
// 2. 用any表示可以返回任意类型
function getDate