Typescript第二天(类型别名,并集类型和交集类型)

本文介绍了TypeScript中如何声明类型别名,包括其限制和作用域特性,并详细讲解了如何使用并集和交集类型进行复杂类型操作。通过示例展示了如何创建和使用Cat和Dog的类型,并展示了它们的并集和交集类型实例。

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

第二天:

1、类型别名

我们可以使用变量声明(let ,const,var)为声明别名类似的,还可以为类型声明别名

注意

1、TypeScript无法推导类型别名,因此必须显式注解

2、同一类型不能声明两次,不可以有两个一样的type

3、同let和const一样,存在块级作用域,即内部类型别名将遮盖外部类型别名

type Age = number;
type Person = {
    name:string
    age:Age//number
}

2、并集类型和交集类型

为了处理类型的并集和交集,TypeScript提供特殊的类型运算符

并集使用“|”(约等于||),一个并集类型的值不一定属于并集中的某一个成员,还可以同时属于每个成员

交集使用“&”(约等于&&)

type Cat = {name:string,purrs:boolean}
type Dog = {name:string,barks:boolean,wags:boolean}
type CatOrDogOrBoth = Cat|Dog
type CatAndDog = Cat&Dog

//Cat
let a : CatOrDogOrBoth = {
    name:"Bonkers",
    purrs:true
}

//Dog
a={
    name:"sljdfls",
    barks:true,
    wags:false
}

//猫狗
a={
    name:"catdog",
    purrs:true,
    barks:true,
    wags:false
}

遇到的问题:

暂无

TypeScript 中的接口(Interface)类型别名(Type Alias)都可以用来描述一个对象的形状,定义一个对象的类型。但它们之间存在一些关键的区别: 1. 接口(Interface)是 TypeScript 的一个核心概念,用于定义对象的类型。接口可以被类实现(implements),也可以被其他接口继承(extends)。接口只能用于描述对象的形状,比如属性方法签名。 例如: ```typescript interface IPerson { name: string; age: number; greet(phrase: string): void; } ``` 2. 类型别名(Type Alias)更像是给类型定义了一个名字,它不仅能够用于对象的形状,还可以用来描述联合类型、交叉类型、基本类型等更复杂的类型。 例如: ```typescript type Person = { name: string; age: number; }; type GreetFunction = (phrase: string) => void; ``` 类型别名还可以用于联合类型交叉类型: ```typescript type UnionType = string | number; type IntersectionType = { name: string } & { age: number }; ``` 3. 接口(Interface)可以声明合,如果一个接口被多次声明,那么这些声明会被合为一个接口。而类型别名(Type Alias)不允许重复定义,如果重新声明同一个类型别名,会导致编译时错误。 4. 在使用上,如果需要提供代码的可扩展性,或者需要通过接口实现某些特定的特性(如继承),接口可能是更合适的选择。如果需要描述更复杂的类型结构,类型别名可能更加灵活。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值