likes
comments
collection
share

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么

作者站长头像
站长
· 阅读数 54

声明:本文是翻译文章,原文为What Are K, T and V in TypeScript Generics,作者是Bytefer

欢迎来到精通TypeScript系列文章,我会在这一系列文章里面以动画的形式给大家介绍TypeScript中一些核心的知识以及技术。本篇文章作为这个系列的第一篇将会给大家介绍TypeScript泛型里面我们常见的K,T和V这些表示符号都是什么意思。话不多说,现在让我们开始学习吧!

首先问你一个问题,当你第一次看到TypeScript泛型里面的T标识符的时候是否也感到疑惑?

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么

上图中的T被称为通用类型参数(generic type parameter),简单来说,它是一个代表目标函数某个参数的类型的占位符

就像普通传参一样,我们在实际调用该方法的时候拿到T对应的实际类型然后反映到该函数的参数或者返回值的类型中去。

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么

那么T到底是什么意思呢?为什么一定要是这个字母呢?其实不然,我们在这其实只需要一个代表通用类型的参数而已,它可以是任意合法的名字,这里用T单纯是想表示它是代表某个类型(Type)的意思。除了T之外,你还可以使用一些像K,V,E等通用的名字

通常来说,对于泛型类型参数,我们有这些命名规范:

  • K(Key): 代表某个对象的键(key)的类型
  • V(Value): 代表某个对象的值(value)的类型
  • E(Element):代表元素的类型

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么

当然你可以定义超过一个的类型参数,例如下面的代码我就定义了一个新的类型参数U来扩展目标函数:

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么 【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么 当我们调用该函数时,我们既可以显式指定这些通用类型参数的具体类型,也可以不指定然后让TypeScript自己进行类型推断:

【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么 【译】精通TypeScript系列 - TypeScript的泛型里面K,T和V都代表什么 看完上面的这些动画展示,你是否已经掌握了通用类型参数了呢?

转载自:https://juejin.cn/post/7215978971711619128
评论
请登录