TypeScript 高级类型
交叉类型 &
交叉类型是将多个类型合并为一个类型。这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。
语法: T & U
,其返回类型既要符合 T
类型也要符合 U
类型。
interface Ant { name: string weight: number } interface Fly { flyHeight: number speed: number } // 少了任何一个属性都会报错 const flyAnt: Ant & Fly = { name: '蚂蚁呀嘿', weight: 0.2, flyHeight: 20, speed: 1, }
联合类型 |
联合类型将多个类型组合成一个类型,可以是多个类型的任意一个。
语法:T | U
,其返回类型为连接的多个类型中的任意一个。
class Bird { fly() { console.log('Bird flying') } layEggs() { console.log('Bird layEggs') } } class Fish { swim() { console.log('Fish swimming') } layEggs() { console.log('Fish layEggs') } } const bird = new Bird() const fish = new Fish() function start(pet: Bird | Fish) { // 调用 layEggs 没问题,因为 Bird 或者 Fish 都有 layEggs 方法 pet.layEggs() // 会报错:Property 'fly' does not exist on type 'Bird | Fish' // pet.fly(); // 会报错:Property 'swim' does not exist on type 'Bird | Fish' // pet.swim(); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论