【我不熟悉的javascript】03. typescript的范型T的应用

说实话,我从接触typescript开始,很少很少接触范型,因为不用他也能完成基本的需求,但是当别人说起来的时候,我们也不应该啥也不知道。先记住这一个例子,慢慢的你就大彻大悟了。

事情是这样的,我要用ts写一个函数,实现判断两个简单数组中的内容是否相等(注意,这个方法有问题,有重复数据的数组的不能正确判定是否相等,在这里就是一个例子,正确方法请看这篇文章),于是乎我这样写

export function arrayContentEqual(arr1: Array, arr2: Array): boolean {
	let flag = true
	if (arr1.length !== arr2.length) {
		flag = false
	} else {
		arr1.forEach(item => {
			if (arr2.indexOf(item === -1)) {
				flag = false
			}
		})
	}
	return flag
}

这样写完之后,有类型错误,很显然,需要指定数组的类型

但是,我无法现在就指定数组的类型,因为可能是string,也可能是number,所以我们可以使用范型做一个标记,通常用大写的T标记【这里T只是一个符号,你想用A, B也行,用啥都行】

export function arrayContentEqual<T>(arr1: Array<T>, arr2: Array<T>): boolean {
	let flag = true
	if (arr1.length !== arr2.length) {
		flag = false
	} else {
		arr1.forEach((item: T) => {
			if (arr2.indexOf(item) === -1) {
				flag = false
			}
		})
	}
	return flag
}

这样我们在调用这个函数的时候,传入两个arr参数,就会自动进行类型推导!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值