TypeScript 可以进行类型编程,这会极大提高 TypeScript 在复杂场景下的应用场景。

news/2024/11/16 10:28:18/

我们来看一下 TypeScript 中的泛型,这也是很多同学觉得 TypeScript 很难的最大原因。

首先我们看下面的代码,我们定一个 idientity0 函数,这个函数逻辑非常简单,就是直接返回参数,那么我们怎么确定返回值的类型呢?

因为输入值可以是任意属性,所以我们只能写出 identity0 这个函数,参数和返回值类型都是 any,但是明显不能满足我们的需求。我们需要返回值的类型和参数一致,所以我们在函数名之后使用 <> 定一个泛型 T,你可以理解这个 T 的意思就是给函数参数定义了一个类型变量,会在后面使用,相当于【type T = arg 的类型】,返回值使用 T 这个类型就完成了这个需求。


function identity0(arg: any): any {return arg
}
// 相当于type T = arg的类型
function identity<T>(arg: T): T {return arg
}
identity<string>('玩转vue 3全家桶') // 这个T就是string,所以返回值必须得是string
identity<number>(1)

有了泛型之后,我们就有了把函数参数定义成类型的功能,我们就可以实现类似高阶函数的类型函数。下面的代码中我们使用 keyof 语法获得已知类型 VueCourse5 的属性列表,相当于 ‘name’|‘price’:


interface VueCourse5 {name:string,price:number
}
type CourseProps &

http://www.ppmy.cn/news/773363.html

相关文章

μC/OS源码官网下载链接

原官网下载链接&#xff1a;http://micrium.com/downloadcenter/download&#xff1b; 现在Micrium被别的公司收购&#xff0c;原先正点原子的源码下载链接后的地方变了&#xff0c;试着找了下&#xff1b; https://www.silabs.com/developers/micrium&#xff1b; https://wes…

前端Vue自定义加载loading组件 通过设置gif实现loading动画 可用于页面请求前loading

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。通过组件化开发&#xff0c;可以有效实现单…

国产操作系统统信UOS简单体验评测

之前久闻深之度的deepin大名&#xff0c;也曾偶然下载之后安装体验了片刻&#xff0c;只是觉得尚还不够成熟&#xff0c;所以又无奈卸载&#xff0c;深以为憾。近期中美摩擦不断&#xff0c;无意中浏览些许新闻&#xff0c;国产操作系统之名再次频频出现。 不同于另一家操作系…

最新国产操作系统uos一小时使用体验

先说两句我的使用感受&#xff1a;始于UI&#xff0c;终于问题 当初就是被这个系统的UI所吸引才安装了这个界面&#xff0c;最后使用发现确实界面类似于mac&#xff0c;UI设计确实好看&#xff0c;但是使用起来就会发现还是会有很多小问题&#xff0c;无论是软件的安装还是其他…

计算机英语os是什么意思,os是什么意思(为什么手机系统有的叫OS)

对于手机的体验而言&#xff0c;除了硬件差异之外&#xff0c;与手机所运行的手机系统也有着很大的关系。不过&#xff0c;各个厂商对于自家系统的命名也不尽相同&#xff1a;小米的MIUI、华为的EMUI以“UI”命名&#xff0c;另一部分如苹果的iOS、魅族的FlymeOS、OPPO的ColorO…

国产操作系统Deepin使用体验

首先当然是安装了&#xff0c;安装直接是镜像拷贝到U盘&#xff0c;BIOS设置启动顺序&#xff0c;然后从U盘启动&#xff0c;一路Next就行。 安装过程就省略了&#xff0c;想必大家都是会的&#xff0c;而且安装并不是本文的重点。 下一步直接就进系统了。 进来后是这样的&a…

【OS】新国立nus操作系统知识点(中文版)

文章目录 1. Introduction to OS本章涉及1.1 什么是操作系统&#xff1f;1.2 为什么我们需要操作系统&#xff1f;抽象 Abstraction控制程序Summary 1.3 现代操作系统分类1.4 操作系统结构OS结构OS是一个程序OS的实现单片OS Monolithic OS微核OS Microkernel 虚拟机 Virtual Ma…

【网络安全带你练爬虫-100练】第8练:json数据的最小项提取

目录 一、目标1&#xff1a;爬取指定json中数据 二、目标2&#xff1a;循环取json中数据 三、目标3&#xff1a;提取每个数据中的某一项 四、网络安全小圈子 一、目标1&#xff1a;爬取指定json中数据 爬取data里数据 核心代码&#xff1a; dirt1 json.loads(res.text)pr…