VVLL.net

Generics(泛型)

日期:2024-08-22 09:58:31

TypeScript 泛型是一种强大的工具,它允许你创建可复用的组件,适用于多种数据类型,而无需在每次使用时指定具体类型。泛型使代码更加灵活和可扩展。以下是对 TypeScript 泛型的详细介绍,包括泛型变量、泛型类型、泛型类、泛型约束及学习技巧。

1. 泛型概述

泛型(Generics)允许定义函数、类或接口时不指定具体类型,而是在使用时再指定具体类型。这种方式使得代码在保持类型安全的同时,具有更高的灵活性。

2. 泛型变量

泛型变量用来捕获传递给函数、类或接口的类型。

function identity<T>(arg: T): T {
  return arg;
}

let output1 = identity<string>("Hello");
let output2 = identity<number>(123);
  • identity<T>(arg: T): T 中的 T 就是泛型变量。
  • 调用时指定具体类型,例如 identity<string>("Hello")

3. 泛型类型

泛型类型用于定义包含一个或多个类型参数的类型。

type GenericIdentityFn<T> = (arg: T)