# 定义 WIP

泛型就是指定一个表示类型的变量, 用它来代替某个实际的类型用于编程, 而后再通过实际运行或推导的类型来对其进行替换, 以达到一段使用泛型程序可以实际适应不同类型的目的。「泛型就是不预先确定的数据类型, 具体的类型在使用的时候再确定的一种类型约束规范」

泛型的好处:

  • 函数和类可以轻松的支持多种类型, 增强程序的扩展性
  • 不必写多条函数重载, 冗长的联合类型声明, 增强代码的可读性
  • 灵活控制类型之间的约束

# 泛型约束

有时候我们希望限制每个类型变量接受的类型数量, 这就是泛型约束

我们可以使用 , 号来分隔多种约束类型, 比如: <T extends Length, Type2, Type3>

# 常见的一些泛型变量含义

  • T (Type): 表示一个 TypeScript 类型

  • K (Key): 表示对象中的键类型

  • V (Value): 表示对象中的值类型

  • E (Element): 表示元素类型

# 使用

function validator<T>(arg: T): T {
	return arg;
}
1
2
3

# 快来耍耍啊

# 🌰🌰

// template
1

# 游乐场


# 参考答案

// answer
1

# 参考资料

handbook - generics (opens new window)

generics (opens new window)

TypeScript Spec (opens new window)

TypeScript进阶 之 重难点梳理 (opens new window)

一文读懂 TypeScript 泛型及应用( 7.8K字) (opens new window)