类型别名、字面量、交叉类型

1、类型别名

ts中定义类型有时很冗长,用type直接把函数类型定义出来,后续可以直接使用。

定义函数类型:

let sum: (x:number,y:number)=>number
const res = sum(1,2)

//type声明一个函数类型,以后可以直接用
type plusType = (x:number,y:number)=>number
let sum2: plusType
const res2 = sum2(2,3)

定义联合类型:

type num = number | string
let res3:num = 1
let res3:num = 'mary'

let res3:num = true        //报错

2、字面量

特殊数据类型,只能是原始数据类型

//num的值只能是1,不能是其他数值
const num: 1 = 1
const num: 1 = 2        //报错

//str的值只能时string,不能是其他字符串
const str: 'string' = 'string'

type direction = 'up' | 'down' | 'left' | 'right'
const d1: direction = 'up'        //此时d1可以是上述四个值中的任意一个

3、交叉类型

interface Iname{
    name:string
}

type Iperson = Iname & {age:number}
let p:Iperson = {name:'jack',age:1}

上述type的用法有点类似interface的extends,但是type更像是其他类型的别名,interface是一种独特的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值