TS中的泛型 (学习笔记)


前言

泛型的基本使用


一、泛型是什么?

泛型(Generics)是指在定义函数、接⼝或类的时候,不预先指定具体的类型,⽽在使⽤的时候再指定类型的⼀种特性,简单来说泛型其实就是类型参数,在定义的时候定义形参(类型变量) ,使⽤的时候传⼊实参(实际的类型)。

二、泛型的分类

  • 函数中的泛型使用
  • 接口中的泛型使用
  • 类型别名的泛型使用
  • 类中的泛型使用

三、泛型的基本使用

3.1 函数中的泛型使用

这里我们不知道我们的arg是啥类型,所以就加了一个未知类型(注意这个T可以是别的名字,可以是U,W,Vde等名字不固定,但一般官方推荐叫T)

function Fn<T>(arg: T): T {
return arg;
}
Fn<Number>(100)

/*
	这里Fn<T>:表示参数类型
	arg:T表示我们的实际参数类型
	最后一个T:表示我们的函数返回值类型
	Fn<Number>(100)  调用这个函数传入number类型,这样我们的T就是number类型,返回值也是number
	传入什么类型我们的T就是什么类型
*/

3.2 接口中的泛型使用 (运用广泛)

这里我们不知道Data是啥参数类型(比如我们定义后端返回过来的数据类型,我们后端接口data数据格式有可能不一样,所以我们可以使用泛型)

interface resData<T> {
	data:T
	code:number,
	success:string
}

const result:resData<number> = {
	data:100,
	code:200,
	success:'成功了'
}

3.2 类型别名中的泛型使用 (运用广泛)

type resData<T> =  {
	name:T
	age:number,
	address:string
}

const result:resData<string> = {
	name:'张三',
	age:18,
	address:'湖北武汉'
}

3.2 类中的泛型使用

class Student<T>{
 name:T,
 age:number
 constructor(name:T,age:number){
 this.name = name
 this.age = age
 }
}
const res= new Student<string>('xiaohong',18)

总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了泛型的使用,我们可以灵活的使用泛型来进行参数的类型约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值