typescript的泛型
时间: 2023-12-19 22:23:10 浏览: 95
泛在TypeScript中是一种特性,它允许我们在定义函数、接口或类时不预先指定具体的类型,而是在使用时手动指定类型。它可以帮助我们在编写可重用的代码时增加类型的安全性和灵活性。
在TypeScript中,使用尖括号(< >)来表示泛型,并在类名、函数名或接口名后面使用泛型变量来表示类型参数。例如,我们可以定义一个泛型函数来实现数组元素的反转:
```typescript
function reverse<T>(array: T[]): T[] {
return array.reverse();
}
const numbers = [1, 2, 3, 4, 5];
const reversedNumbers = reverse(numbers); // [5, 4, 3, 2, 1]
const names = ["Alice", "Bob", "Charlie"];
const reversedNames = reverse(names); // ["Charlie", "Bob", "Alice"]
```
在上面的例子中,泛型变量`T`表示类型参数,它可以在函数体内部和函数的参数类型中使用。
除了函数,我们还可以使用泛型来定义类和接口。例如,我们可以创建一个泛型类`Box`来存储不同类型的值:
```typescript
class Box<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
const numberBox = new Box<number>(42);
console.log(numberBox.getValue()); // 42
const stringBox = new Box<string>("Hello");
console.log(stringBox.getValue()); // "Hello"
```
上面的例子中,泛型变量`T`可以在类的成员变量类型、构造函数参数类型和方法返回值类型中使用。
总结来说,TypeScript的泛型提供了一种灵活的方式来增加代码的可重用性和类型安全性。
阅读全文