泛型允许在定义函数、类或接口时,使用类型参数来表示未指定的类型,这些参数在具体使用时,才被指定具体的类型,泛型能让同一段代码适用于多种类型,同时仍然保持类型的安全性。
举例:如下代码中 <T> 就是泛型,(不一定非叫 T),设置泛型后即可在函数中使用 T 来表示该类型:
一、泛型函数
function identity<T>(arg: T): T {
return arg;
}
在这个例子中,定义了一个泛型函数 identity
,它接受一个参数 arg
,类型为 T
(一个类型变量),同时返回同一类型 T
的值。
let output1 = identity<string>("Hello, World!");
let output2 = identity<number>(42);
使用泛型函数,可以在调用泛型函数时指定类型参数
二、泛型接口
接口也可以是泛型的,定义一种通用的类型结构。
三、泛型类
泛型也可以用于类的定义,使得类可以处理多种类型的数据。
四、使用泛型的好处
- 代码复用:通过使用泛型,可以编写通用代码,处理多种数据类型,避免代码重复。
- 提高类型安全性:泛型提供类型检查,有助于减少运行时错误,确保函数或类使用的类型是一致的。
- 自描述性:泛型使得 API 更加自描述,提高可读性和可维护性。
总结
泛型是 TypeScript 的一个重要特性,它允许在定义函数、类和接口时使用类型变量。通过使用泛型,开发者能够编写更灵活、通用和安全的代码。掌握泛型的使用,可以使 TypeScript 的开发更高效,并提升代码的可重用性与可维护性。