TypeScript(九)泛型基础

目录

前言

定义

基本用法

泛型命名约定

泛型&类型别名

泛型&接口

泛型&函数

泛型&类

泛型默认值

结语

相关文章


前言

本文收录于TypeScript知识总结系列文章,欢迎指正! 

代码复用是开发人员老生常谈的问题了,我们通过定义变量,使用函数或类减少代码重复编写。

在TS中我们可以把编写一个类型看成是新建一个函数,参数便是今天的主角:泛型,通过传入不同的参数(类型)控制类型的走向,达到类型复用的目的

定义

泛型类型是指一种不确定的类型,它允许开发者在定义函数、类、接口时不指定具体的类型,而是使用一个占位符类型,等到函数、类、接口被调用时再动态地传入具体类型,以便让它们适用于多种不同类型的数据。

使用泛型可以使代码更加通用、可复用、可扩展,提高代码的质量和可维护性。

基本用法

泛型使用尖括号<T>表示,其中T可以被任意字母替换,它代表一种类型,在使用时需要将其替换为具体的类型。

还记得之前数组的泛型写法吗?

const arr: Array<string> = ["a", "b"]

我们使用尖括号来标注泛型的实际类型

在JS中我们都会定义函数,每个函数的行为走向或许由参数决定,举个例子

type IObj = {
    name?: string
}
interface ISetKey {
    (obj: IObj, key: string): IObj
}
const setName: ISetKey = function (obj: IObj, name: string): IObj {
    if (!!!obj.name) obj.name = name
    return obj
}
const obj: IObj = setName({}, "张三")

上面这段代码,我实现了一个给对象设置值的函数,乍一看似乎没啥毛病,但是如果我给上述的代码增加一个age操作

type IObj1 = {
    age?: number
}
const setAge:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿宇的编程之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值