TypeScript 的泛型(Generics)
TypeScript 的泛型(Generics)是一种在编写可复用、灵活且类型安全的代码时非常有用的特性。泛型允许你在编写函数、类或接口时使用参数化类型,这些参数化类型在使用时可以被具体指定。
基本概念
泛型允许你编写能够适用于各种类型的代码,而不是固定于一种特定类型。在函数、类或接口中,你可以定义一个或多个类型参数,这些类型参数将在实际使用时被替换为具体的类型。
用法示例
1. 函数泛型
在这个例子中,<T>
表示这是一个类型参数,可以接受任何类型的参数。当我们调用 identity
函数时,通过 <string>
指定了类型参数 T
为 string
,因此 TypeScript 知道返回值的类型应该是 string
。
2. 接口泛型
这个示例中,Box
接口使用了一个类型参数 T
,用来指定 value
属性的类型。通过指定 <number>
,我们告诉 TypeScript box
对象中的 value
属性应该是数字类型。
3. 类泛型
在这个示例中,Queue
类使用了类型参数 T
,用来指定队列中的元素类型。当我们创建 numberQueue
实例时,指定了类型参数为 number
,所以该队列只能存储数字类型的元素。
优势
- 代码复用性:泛型使得你能够编写可重用的代码,而不必限制于特定的类型。
- 类型安全:使用泛型可以在编译时捕获类型错误,确保类型的一致性。
- 灵活性:可以将泛型应用于函数、类、接口等不同的语法结构,使得代码更加灵活和可扩展。
泛型是 TypeScript 中非常强大和灵活的特性,能够帮助你编写更加通用、可维护和类型安全的代码。