基本使用
泛型使用尖括号 来表示,并在定义函数、类或接口时指定类型参数。
const city = <T>(item: T): T => {
return item; // T类似一个变量保证入参和出参类型一致。
};
let result = city<number>(42);
let result2 = city<string>("Southern Wind");
console.log(result); // 42
console.log(result2); // Southern Wind
这里可能就有疑问了,为什么要用泛型?原因:泛型可以让我们在编写代码时更加灵活和可重用,同时也可以避免类型错误的发生。
const city = (item: number | string): number | string => {
return item;
};
比如接受 number 和 string 多个类型的参数,我们可以使用泛型来解决这个问题
泛型类型
const reverse = <T>(array: T[]): T[] => {
return array.reverse();
};
const arr: number[] = [1, 2, 3, 4, 5, 6];
const reversedArr = reverse(arr);
console.log(reversedArr); // (6) [6, 5, 4, 3, 2, 1]
let string: string[] = ["a", "b", "c", "d", "e"];
let reversedString = reverse(string);
console.log(reversedString); // (5) ["e", "d", "c", "b", "a"]
泛型类型允许我们创建可以适用于多种类型的类,类中的成员可以使用泛型类型进行声明和使用
多类型集合,泛型如何处理?
- 返回类型集合
const citys = <T, U>(item: T, msg: U): [T