泛型是什么?
考虑到API的重用性,不仅可以支持现在的数据类型,还可以支持未来的数据类型
在日常进行定义方法或者是组件的时候,一个组件可以支持多种数据类型,或者是一个方法可以进行多个数据类型的定义,这样就可以进行重复的利用这个方法或者组件
//举个例子 (平常的函数)
function a(参数value){
return 返回的参数value
}
// 稍微的对其进行改进的ts
function a(参数value:参数类型,例如Number){
return 返回的参数的值value
}
//这是用TypeScript中对其参数进行的约束,传参的时候只能用Number数据类型,其他的则会报错
以下是用泛型来进行定义
// 使用TypeScript中的泛型来定义函数
function a<W>(参数value:W):W{
return 参数value
}
在以上的代码中进行了一个参数的约束,以及返回值的约束,其中这个W就类似于一个占位符,当我们进行调用的时候,就把需要的类型替换调这个占位符,也就是W。
// 使用TypeScript中的泛型来定义函数使用方法
a<Number>(value)
//其中这个value的值是所定义的值的类型。上面我们定义的是一个Number,其中传入的参数的类型必须是Number,否则就会报错。
当然我们进行复用的时候,数据类型不可能是单一的,我们还可以进行一些其他的占位符,
// 使用TypeScript中的泛型来定义函数
function a<W,M>(参数value1:W,参数value2:M):W{
return 参数value
}
以上的代码是我们传递的多个参数,以及定义了多个数据类型,同时也可以进行结束数据的约束,例如数组,对象等类型