TypeScript 泛型中的 K、T 和 V 是什么?

2024-01-31 14:07:55 浏览数 (1654)

在TypeScript中,泛型是一种强大的工具,它使我们能够编写更灵活和可重用的代码。泛型允许我们在定义函数、类或接口时使用类型参数来表示未知的类型。在泛型中,常见的类型参数命名约定包括T、K和V。

当你第一次看到 TypeScript 泛型中的​ T ​时,是不是觉得很奇怪?

1_XjuH8GykvoOL77Q1mtQazQ

图中的​ T ​称为泛型类型参数,它是我们希望传递给恒等函数的类型占位符。

就像传递参数一样,我们获取用户指定的实际类型,并将其链接到参数类型和返回值类型。

1_58mhLNgQAejgD8p_S0UjNw

1_SYbldGfuNQhNmE4-Lv4bdQ

那么​ T ​是什么意思呢?图中的泛型类型参数​T​代表Type,实际上,​ T ​可以替换为任何有效的名称。除了 之外T,常见的泛型变量还有 ​K​、​V​、​E​ 等。

  • K(Key):表示对象中key的类型
  • V(Value):表示对象中值的类型
  • E(Element):表示元素类型

1_WVWRHxEfT2j6XKZddiIhSw

当然,您不必只定义一个类型参数,您可以引入任意数量的类型参数。这里我们引入了一个新的类型参数U,它扩展了我们定义的恒等函数。

1_oq5VVDHQtYuELwcV0wRjLA

1_tMSUrnvbQogNRk3rRk0bog

在调用恒等​函数时,我们可以显式指定泛型参数的实际类型。当然,你也可以不指定泛型参数的类型,让TypeScript自动帮我们完成类型推断。

1_A_X4xCcHUe6ythaN_UNwsQ

1_qimef85ZW32BQ6nJbIor9g

看完上面的动画,你是否已经了解泛型类型参数了呢?