请解释泛型函数 (Generic Functions) 的定义和用法

推荐答案

泛型函数(Generic Functions)是 TypeScript 中一种允许函数在调用时接受任意类型参数的机制。通过使用泛型,可以编写更通用、灵活的函数,而不必为每种可能的类型编写单独的函数。

定义

泛型函数通过在函数名后使用尖括号 <T> 来定义,其中 T 是一个类型变量,表示函数可以接受任意类型。例如:

在这个例子中,identity 函数接受一个类型为 T 的参数 arg,并返回相同类型的值。

用法

泛型函数可以在调用时指定具体的类型,也可以让 TypeScript 自动推断类型。例如:

本题详细解读

泛型函数的作用

泛型函数的主要作用是提高代码的复用性和类型安全性。通过使用泛型,可以避免为每种类型编写重复的函数,同时确保在编译时进行类型检查。

类型推断

TypeScript 的类型推断机制使得在调用泛型函数时,通常不需要显式指定类型参数。编译器会根据传入的参数自动推断出合适的类型。

多个类型参数

泛型函数可以定义多个类型参数,例如:

在这个例子中,merge 函数接受两个不同类型的参数 obj1obj2,并返回它们的合并结果。

约束类型参数

有时需要对泛型类型参数进行约束,以确保它们满足某些条件。可以通过 extends 关键字来实现:

在这个例子中,K 被约束为 T 的键之一,确保 keyobj 的有效属性。

默认类型参数

TypeScript 还支持为泛型类型参数提供默认值:

在这个例子中,如果调用 createArray 时没有指定类型参数,T 将默认为 string 类型。

纠错
反馈