TypeScript 泛型中的 K、T、V

本文介绍了泛型在软件工程中的重要性,特别是在Java、C#和TypeScript中的应用。它强调了泛型作为参数化类型,如何用于创建可重用的类、接口和方法,以及TypeScript中常见的类型参数命名约定。
摘要由CSDN通过智能技术生成

一、 泛型是什么

软件工程中,我们不仅要创建一致的定义良好的 API ,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
在像 C# 和 Java 这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。
—— 官方文档介绍

官方文档说的有点晕,不过既然介绍提到了 Java ,那就看看泛型在 Java 的解释:

Java 泛型是 J2 SE1.5 中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
—— 百度百科

对于参数我们就比较熟悉了,在定义函数的时候写入形参,后面调用的时候再传入具体的实参;同样的,参数化类型也就是将原先的具体的类型当做一个参数来处理,在定义阶段就相当于定义函数时候的形参一样,没有指定的类型,只是相当于一个占位符的作用,而后在使用阶段的时候根据传入的类型来确定。

也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,也就被分别称为泛型类、泛型接口、泛型方法。

TypeScript泛型类型参数的实际命名约定非常一致:使用单个大写字符,或者对应于它们所表示的第一个字母,例如:

  • T为“type”,是最通用的,因此也是最常用的类型参数名;
  • K表示“key”,或P表示“property”,两者都倾向于受PropertyKey或keyof T或keyof SomeInterface或keyof SomeClass的约束;
  • V表示“value”,最常用作成对使用,K表示“key”;
  • A表示“arguments”,R表示“return”,分别对应函数签名的rest参数列表和返回类型,如(...args: A) => R;
  • N表示“number”,S表示“string”,B表示“boolean”,表示受原语约束的类型参数;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值