TypeScript 泛型

本文将介绍 TypeScript 中的泛型。

一、什么是泛型?

泛型的本质是将数据类型参数化。

具体请参考:

Java 泛型 - 什么是泛型 ?

二、TypeScript 中的泛型

1. 语法

TypeScript 允许在定义函数、接口、类时定义泛型,语法如下:

1
2
3
4
5
6
7
8
9
10
11
function 方法名 <泛型标记符, ···> (···): ··· {
···
}

interface 接口名 <泛型标记符, ···> {
···
}

class 类名 <泛型标记符, ···> {
···
}

2. 泛型参数

在泛型函数、泛型接口、泛型类中,泛型标记符能够像普通的数据类型一样使用,它将会在使用时被传入的泛型实参所替代。

1
2
3
4
5
function createArray<T>(): Array<T> {
···
}

createArray<number>()

等效于

1
2
3
function createNumberArray(): Array<number> {
···
}

3. 泛型上限

TypeScript 允许定义泛型上限,如下:

1
<泛型标记符 extends 父类型>

要求传入的泛型需要继承自父类型。

参考