TS泛型的使用
泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
一、泛型两种使用
在定义泛型后,有两种方式使用,一种是传入泛型类型,另一种使用类型推断。
declare function fn<T>(arg: T): T; // 定义一个泛型函数
const fn1 = fn<string>('hello'); // 第一种方式,传入泛型类型
string const fn2 = fn(1); // 第二种方式,从参数 arg 传入的类型 number,来推断出泛型 T 的类型是 number
1.函数会返回任何传入它的值
function identity(arg: number): number {
return arg;
}
//我们需要一种方法使返回值的类型与传入参数的类型是相同的,只表示类型,不表示值
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("myString");
//明确的指定了T是string类型,并做为一个参数传给函数,使用了<>括起来而不是()
2.类型推论
即编译器会根据传入的参数自动地帮助我们确定T的类型
let output = identity("myString");
//注意我们没必要使用尖括号(<>)来明确地传入类型
链接: https://www.cnblogs.com/libaidwz/p/15189205.html.