typescript 学习系列-泛型

泛型:组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。

泛型:对未来某个不确定的数据类型实现预定义的一种方式,,提高数据灵活性,满足不同的场景需求。

  • 泛型
  • 泛型函数
  • 泛型类
  • 泛型接口
function getData(value: string): string {
	return value; // 只能返回string类型不灵活
}
// 需求:返回值的类型与传入参数的类型是相同的
// 使用any可以实现,但是抛弃了类型检查,丢失类型检查代码不严谨

泛型函数

function getData<T>(value: T): T{
	return value;
}
getData<string>('data')

泛型类

class MinClass<T> {
	public list: T[] = [];
	add(value: T): void {
		this.list.push(value)
	}
	getMinNum(): T {}
}

let m = new MinClass<number>(); // 传入number类型
let m1 = new MinClass<string>(); // 传入string类型

// 这样我们就很灵活的实现了传入什么类型输出什么类型,适配多种情况

泛型接口

// 函数类型接口
interface Config {
	(val:string, val1: string): string;
}
function getData: Config(val: string, val1: string): string {
	return val + val1
}
setData('name', 'zhangsan')

//将函数接口改造成泛型接口
interface Config<T> {
	(val: T): T;
}
function getData<T>(value: T): T {
	return val;
}
let myData: Config<string> = getData;
myData('hello')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值