TypeScript接口和类的使用

目录

1.接口是什么

2.定义接口

3.接口的继承

4.类

5.类的继承


1.接口是什么

接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。

2.定义接口

在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型
 

例如:
// 定义人的接口
interface IPerson {
  readonly id: number
  name: string
  age: number
  sex?: string
}

const person1: IPerson = {
  id: 1,//只读属性,一旦赋值就不能再改变了
  name: 'tom',
  age: 20,
  sex: '男'
}

类型检查器会查看对象内部的属性是否与IPerson接口描述一致, 如果不一致就会提示类型错误

接口里的属性不全都是必需的,有些只是在某些条件下存在,或者根本不存在,带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个 ? 符号。

一些对象属性只能在对象刚刚创建的时候修改其值。 你可以在属性名前用 readonly 来指定只读属性:

3.接口的继承

就相当于这一个接口复制成员到另一个接口里面

看案例

interface Alarm {
  alert(): any;
}

interface Light {
  lightOn(): void;
  lightOff(): void;
}

interface LightableAlarm extends Alarm, Light {

}

  class Car3 implements LightableAlarm{

    alert() {
      console.log('Car alert3');
      }
     
    lightOn() {
      console.log('Car light on3');
      }
    
    lightOff() {
      console.log('Car light off3');
      }
  }

  let mycar3 = new Car3()
  mycar3.alert()
  mycar3.lightOff()
  mycar3.lightOn()

最后用的是类实现接口

4.类

对于传统的 JavaScript 程序我们会使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员使用这些语法就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 从 ECMAScript 2015,也就是 ES6 开始, JavaScript 程序员将能够使用基于类的面向对象的方式。 使用 TypeScript,我们允许开发者现在就使用这些特性,并且编译后的 JavaScript 可以在所有主流浏览器和平台上运行,而不需要等到下个 JavaScript 版本。

/* 

类的基本定义与使用

*/

class Greeter {

 // 声明属性

 message: string

 // 构造方法

 constructor (message: string) {

 this.message = message

 }

 // 一般方法

 greet (): string {

 return 'Hello ' + this.message

 }}

// 创建类的实例
const greeter = new Greeter('world')
// 调用实例的方法
console.log(greeter.greet())

5.类的继承

/* 

类的继承

*/

class Animal {

 run (distance: number) {

 console.log(`Animal run ${distance}m`)

 }}

class Dog extends Animal {

 cry () {

 console.log('wang! wang!')

 }
}

const dog = new Dog()

dog.cry() 

dog.run(100) // 可以调用从父中继承得到的方法

这个例子展示了最基本的继承:类从基类中继承了属性和方法。 这里,Dog 是一个 派生类,它派生自 Animal 基类,通过 extends 关键字。 派生类通常被称作子类,基类通常被称作超类。

因为 Dog 继承了 Animal 的功能,因此我们可以创建一个 Dog 的实例,它能够 cry() 和 run()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟小宇要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值