【typescript】Typescript联合类型 类型断言 、Typescript 泛型函数以及使用场景

文章介绍了TypeScript中处理联合类型时如何使用类型断言(as关键字)来指定更具体的类型,以及泛型函数的概念和使用,如类型变量用于捕获用户提供的类型,实现函数的复用并确保类型安全。示例展示了如何通过泛型函数减少重复代码,提高代码效率。
摘要由CSDN通过智能技术生成

一.Typescript联合类型 类型断言

interface myinterface {
    name: string
    ren(): void
}

interface youinterface {
    name: string,
    hobby(): void
}


function getname(event: myinterface | youinterface) {
    // return event.ren()  //报错
    return (event as youinterface).hobby()
}

getname({ name: '斗罗大陆', ren() { console.log('唐三'); } })
getname({ name: '星辰变', hobby() { console.log(`飞行`); } })

上述说明:

return event.ren()  会报错 是因为 形参使用了 联合类型传入了两个类型 , 报错是因为他也不知道你要使用 这两个类型中的那一个 

这种情况下就可以使用 as 具体类型 , 来使用了

描述:

1. 使用 as 实现类型断言

2. as 后面的类型是一个更加具体的类型 

注意:当ts 不确定联合类型的变量到底是哪个类型的时候 采用类型断言 as 将其指定为一个类型

二.Typescript 泛型函数

function numtion<T>( value: T ) { return: value }

描述:

1.在函数名称的后面添加 <> 尖括号 , 尖括号内添加自定义类型变量名称

2. 类型变量 是一种特殊的变量 他处理类型而不是值

3.类型变量相当于一个类型容器 能够捕获到用户提供的类型

4.因为T是类型 然后可以将 他作为函数参数和返回值的类型 表示参数和返回值具有相同的类型

5.类型变量 可以是任意合法名称

使用场景

问题: 

function numtion(event: number) {
    return event
}
numtion(1)

function nantion(event: string) {
    return event
}
nantion('1')

function leantion(event: boolean) {
    return event
}
leantion(true)

描述: 我这里要创建 number string boolean 类型函数 , 我这样创建需要创建三个函数并指定对应的类型 , 这样写太占有资源

解决问题:

function grouption<T>(event: T):T {
    return console.log(event);
}
grouption(1)
grouption('1')
grouption(true)

解决方法是 使用泛型函数 ,他就相当于一个类型容器 能够捕获用户提供的类型 

当传入 number 后 这个类型就被函数声明时指定的变量 T 捕获到 ,此时 T 类型就是 number,同样传入 string 类型,函数 grouption 参数和返回值的类型都是 string

通过泛型可以让 grouption 函数与多种不同的类型一起工作 实现了复用的同时保证了类型的安全


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值