TypeScript 泛型中的 K、T、V

藏宝库编辑 2024-9-20 17:55:16 97 0 来自 中国
一、 泛型是什么
软件工程中,我们不但要创建划一的界说精良的 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”,表现受原语束缚的范例参数;
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 11:09, Processed in 0.111551 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表