返回
typescript 泛型与类型推导入门详解
前端
2024-01-18 15:41:02
TypeScript 中的泛型和类型推导是两个非常强大的特性,它们可以让我们编写出更健壮、更灵活的代码。泛型允许我们定义类型参数化的组件,而类型推导则可以自动推断类型,从而减少代码的冗余。
泛型
泛型是一种定义类型参数化的组件的方法。我们可以使用泛型来定义函数、类和接口。在泛型定义中,我们使用类型变量来表示类型参数。类型变量可以是任何名称,但通常使用大写字母开头,例如 T
、U
、V
等。
例如,我们可以定义一个简单的泛型函数 identity
,它将任何类型的参数原样返回:
function identity<T>(x: T): T {
return x;
}
我们可以使用 identity
函数来处理任何类型的参数,例如:
const number = identity(10);
const string = identity("hello");
const boolean = identity(true);
类型推导
类型推导是一种自动推断类型的方法。TypeScript 可以根据上下文自动推断变量、函数参数和函数返回值的类型。例如,我们可以定义一个函数 sum
,它将两个数字相加:
function sum(x: number, y: number): number {
return x + y;
}
TypeScript 可以自动推断出 x
和 y
的类型都是 number
,以及 sum
函数的返回值类型是 number
。
泛型和类型推导的结合
泛型和类型推导可以结合使用,以编写出更健壮、更灵活的代码。例如,我们可以定义一个泛型的 Array
类,它可以存储任何类型的元素:
class Array<T> {
private data: T[];
constructor(...items: T[]) {
this.data = items;
}
add(item: T) {
this.data.push(item);
}
get(index: number): T {
return this.data[index];
}
}
我们可以使用 Array
类来存储任何类型的元素,例如:
const numbers = new Array<number>(1, 2, 3);
const strings = new Array<string>("hello", "world");
const booleans = new Array<boolean>(true, false);
结论
泛型和类型推导是 TypeScript 中两个非常强大的特性。它们可以让我们编写出更健壮、更灵活的代码。通过学习,你将掌握泛型和类型推导的本质,并能够轻松将其应用于实际开发中。