您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

TypeScript中的类

51自学网 2022-02-21 13:35:53
  javascript

1.概述

类这个概念基本是所有面向对象编程语言都具有一个概念,例如JavaPython等;在JavaScript中ES6 之前是没有类这个概念的,对于熟悉面向对象来程序猿来说有些棘手,因为他们用的都是基于类的继承,对象也是通过类创建出来的。在ES6中添加了类这个概念,虽然只是一个语法糖,但是这就可以让程序员基于类去进行操作了。在TS中也是支持类这个概念的。

2.定义一个简单的类

在TS中也是使用class关键字来定义一个类,示例代码如下:

;(function () {  // 定义类  class Person {    // 公共属性,默认可以不写    public name: string    // 构造函数    constructor(name: string) {      // 初始化name属性      this.name = name    }  }  // 实例化类  const person = new Person('一碗周')  console.log(person.name) // 一碗周})()

上面定义的那个类中具有一个构造函数和一个公共属性name,在类实例化时调用了constructor构造函数,调用对功能属性进行初始化。

上面的写法还有一种简写形式,如下所示:

;(function () {  class Person {    constructor(public name: string) {}  }  // 实例化类  const person = new Person('一碗周')  console.log(person.name) // 一碗周})()

这个写法等同于上面那个写法。

3.继承

在面向对象的编程语言中,有一个重要得特征就是继承。继承就是基于某个类来扩展现有的类。

例如,爸爸在北京有一个四合院,儿子可以继承爸爸的四合院,而且还可以自己去买一栋别墅;最终儿子的房产拥有北京的四合院和一栋别墅。

在TS中继承使用extends关键字,示例代码如下:

;(function () {  // 定义一个基类,又称超类  class Person {    // 在基类中定义一个name属性    constructor(public name: string) {}  }  // 定义一个派生类,又称子类,继承于基类  class Programmer extends Person {    constructor(name: string, public hobby: string) {      // 通过 super 调用基类的构造函数      super(name)    }  }  // 实例化子类  const programmer = new Programmer('一碗周', 'coding')  console.log(programmer.name, programmer.hobby) // 一碗周 coding})()

如上示例代码中,Person称作基类 ,或者称超类 ,Programmer是一个派生类 ,或者称子类 。

在上面那个例子中,Programmer类通过extends关键字继承于Person类。子类拥有父类全部的属性和方法。

在子类的构造函数中,我们必须调用super()方法来执行基类的构造函数,这个是必须的。

类的继承不仅可以继承类,而且还可以在子类重写父类的属性或者方法。实例代码如下:

// 定义一个 Person类class Person {    constructor(public name: string) {}    // 定义一个方法    sayMy() {        console.log(`我的名字: ${this.name}`)    }}// 定义一个 Adult 类继承于 Person 类class Adult extends Person {    constructor(public age: number) {        super('彼岸繁
下载地址:
TypeScript接口介绍
TypeScript联合类型,交叉类型和类型保护
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。