TypeScript——联合类型、交叉类型

文章介绍了TypeScript中的两种重要概念:联合类型和交叉类型。联合类型允许一个值可以是多个类型之一,例如`number|string|boolean`。而交叉类型则将多个类型组合成一个新类型,包含所有类型的成员。文中通过示例展示了如何定义和使用这两种类型,并提供了相关的接口和函数用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联合类型

联合类型表示一个值可以是几种类型之一。我们用竖线( | )分隔每个类型,所以 number | string | boolean表示一个值可以是 number string,或 boolean

let gender:number | string = 'M' 

let fn = function(type:number | boolean):boolean {
	return !!type
}
  • 如果一个值是联合类型,我们只能访问此联合类型的所有类型里共有的成员
interface Bird {
    fly();
    layEggs();
}

interface Fish {
    swim();
    layEggs();
}

function getSmallPet(): Fish | Bird {
    // ...
}

let pet = getSmallPet();
pet.layEggs(); // okay
pet.swim();    // errors

交叉类型

交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如, Person & Serializable & Loggable同时是 PersonSerializableLoggable。 就是说这个类型的对象同时拥有了这三种类型的成员。

interface User {
  name: string
  age: number
}
interface Info {
  height: number
  weight: number
}

let fn = (man: User & Info): void => {
  console.log(man)
}

fn({ name: 'zs', age: 18, height: 180, weight: 150 })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值