当前位置: 首页 > news >正文

TS 中类型的继承

在 TypeScript(TS)中,类型的继承通常通过接口(Interfaces)和类(Classes)来实现。接口提供了一种定义对象形状的方式,而类则提供了一种创建对象实例的方式。以下是如何在 TypeScript 中实现类型继承的详细说明。

1. 使用接口继承接口

接口可以继承其他接口,从而组合和扩展多个接口的功能。

interface Animal {name: string;eat(): void;
}interface Dog extends Animal {breed: string;bark(): void;
}const myDog: Dog = {name: "Buddy",breed: "Golden Retriever",eat() {console.log(`${this.name} is eating.`);},bark() {console.log(`${this.name} is barking.`);}
};

在这个例子中,Dog 接口继承了 Animal 接口,因此 Dog 必须实现 Animal 接口中的所有属性和方法,同时还可以添加新的属性和方法。

2. 使用类实现接口

类可以实现一个或多个接口,确保类包含接口中定义的属性和方法。

interface Animal {name: string;eat(): void;
}class Dog implements Animal {name: string;constructor(name: string) {this.name = name;}eat() {console.log(`${this.name} is eating.`);}bark() {console.log(`${this.name} is barking.`);}
}const myDog = new Dog("Buddy");
myDog.eat();
myDog.bark();

在这个例子中,Dog 类实现了 Animal 接口,因此它必须包含 name 属性和 eat 方法。Dog 类还可以添加额外的属性和方法,如 bark

3. 类继承类

类可以继承其他类,从而复用和扩展父类的属性和方法。

class Animal {name: string;constructor(name: string) {this.name = name;}eat() {console.log(`${this.name} is eating.`);}
}class Dog extends Animal {breed: string;constructor(name: string, breed: string) {super(name); // 调用父类的构造函数this.breed = breed;}bark() {console.log(`${this.name} is barking.`);}
}const myDog = new Dog("Buddy", "Golden Retriever");
myDog.eat();
myDog.bark();

在这个例子中,Dog 类继承了 Animal 类,因此它可以使用父类 Animalname 属性和 eat 方法。Dog 类还可以添加新的属性和方法,如 breedbark

4. 混合使用接口和类

在实际开发中,你可能会混合使用接口和类来实现复杂的类型继承关系。

interface Animal {name: string;eat(): void;
}interface DogInterface extends Animal {breed: string;bark(): void;
}class AnimalBase implements Animal {name: string;constructor(name: string) {this.name = name;}eat() {console.log(`${this.name} is eating.`);}
}class Dog extends AnimalBase implements DogInterface {breed: string;constructor(name: string, breed: string) {super(name);this.breed = breed;}bark() {console.log(`${this.name} is barking.`);}
}const myDog = new Dog("Buddy", "Golden Retriever");
myDog.eat();
myDog.bark();

在这个例子中,DogInterface 接口扩展了 Animal 接口,AnimalBase 类实现了 Animal 接口,而 Dog 类则继承了 AnimalBase 类并实现了 DogInterface 接口。这种混合使用接口和类的方式可以提供更高的灵活性和可维护性。

通过这些示例,你可以看到 TypeScript 提供了多种方式来实现类型的继承,以满足不同的开发需求。

http://www.lryc.cn/news/453711.html

相关文章:

  • 在VS code 中部署C#和avalonia开发环境
  • Windows删除service服务
  • 【数据结构】---图
  • 《 C++ 修炼全景指南:十四 》大数据杀手锏:揭秘 C++ 中 BitSet 与 BloomFilter 的神奇性能!
  • 相机基础概念
  • 【python】追加写入excel
  • 继承实现单例模式的探索(二)
  • 设计模式-访问者模式
  • 国创——基于Unity3D和MediaPipe构建虚拟人物驱动系统
  • 环境可靠性
  • Chromium 设置页面打开系统代理源码分析c++
  • 信号检测理论(Signal Detection Theory, SDT)
  • Flink源码剖析
  • [Python学习日记-39] 闭包是个什么东西?
  • XSLT 实例:掌握 XML 转换的艺术
  • 【C++】第一节:C++入门
  • CSP-S 2021 T1廊桥分配
  • 项目配置说明
  • linux网络编程实战
  • 网络基础 【HTTP】
  • [Linux#61][UDP] port | netstat | udp缓冲区 | stm32
  • 定义类方法的错误总结
  • Redis --- 第三讲 --- 通用命令
  • 【Linux】进程间关系与守护进程
  • 【可视化大屏】将柱状图引入到html页面中
  • gm/ID设计方法学习笔记(一)
  • 高度细化的SAGA模式实现:基于Spring Boot与RabbitMQ的跨服务事务
  • Vue工程化开发
  • Ray_Tracing_The_Next_Week下
  • ES索引生命周期管理