在 TypeScript 中,泛型(Generics)是一种强大的功能,它允许开发者创建可以处理多种数据类型的可重用组件。 泛型的基本语法如下:
function functionName<T>(parameter: T): T {
// 函数体
return parameter;
}
// 使用泛型函数
let result = functionName<string>('hello');
function identity<T>(arg: T): T {
return arg;
}
let output1 = identity<string>('hello'); // output1 is of type string
let output2 = identity<number>(42); // output2 is of type number
在这个例子中,identity 函数接受一个类型参数 T,并返回相同类型的值。当我们调用 identity 函数时,我们可以指定 T 的具体类型,这样就可以确保函数的输入和输出都是同一种类型。
class GenericBox<T> {
private value: T;
set(val: T): void {
this.value = val;
}
get(): T {
return this.value;
}
}
let stringBox = new GenericBox<string>();
stringBox.set('hello');
let message: string = stringBox.get();
在这个例子中,我们定义了一个 GenericBox 类,它使用类型参数 T 来描述它所包含的值的类型。当创建 GenericBox 的实例时,我们可以指定 T 为 string,从而确保该实例只能存储和返回字符串类型的值。
总之,泛型是 TypeScript 中一个非常强大的特性,它可以帮助开发者编写出更加通用、类型安全和可维护的代码。合理使用泛型可以大大提高开发效率,并增强代码的可靠性。