《TypeScript》入门与精通-泛型详解,源码解析

本文介绍了JavaScript中的泛型概念,展示了如何在函数和类中使用泛型提高代码的灵活性。作者通过实例演示了泛型在类型推断和处理不同数据类型的场景,并强调了在混合使用TS类型系统和JS语法时理解和分析代码的重要性。
摘要由CSDN通过智能技术生成

当然,泛型可以写不止一个,再看一个例子,泛型可以写不止一个,多个也是可以的

function join<T,A>(first: T, second: A) {

return ${first}-${second};

}

join<string,number>(“1”,123) // 正确

// 甚至,TS是能根据定义的时候做类型推断的

join(“1”,123) // 正确,这么写也没有问题,TS能自己推断出具体类型是什么

可能有的同学看到这里会说,这个泛型确实比一般的类型复杂了点,但是也没上面说的复杂到看不懂啊,好吧,到这里其实只是一些基础知识,来着稍微复杂一点的试炼一下

const getData: (str: T) => string = (str: T): string => {

return ${str}-1;

};

emmm…,第一反应肯定是有点懵,这是个啥,有点像箭头函数,但是为什么会有两个箭头函数在一起,好吧,我们具体解释一下:

首先我们确定这是一个函数表达式,然后后面应该是跟了一个箭头函数,然后返回的就是这个${str}-1,当中一部分应该是TS的类型定义,那我换个写法,看看能不能理解:

// 将箭头函数拆解出来

function handleData(str: T): string {

return ${str}-1;

}

const getData: (str: T) => string = handleData;

这样是不是好理解一点

// 函数名

const getData

// 函数的TS类型

(str: T) => string

// 函数体

function handleData(str: T): string {

return ${str}-1;

}

// 对应到上面那个简写

// 函数名

const getData

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值