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

江苏省建设厅新疆办网站首页黑马培训价目表

江苏省建设厅新疆办网站首页,黑马培训价目表,360网站拦截做,推荐做素菜的网站在早期的JavaScript开发中(ES5)我们需要通过函数和原型链来实现类和继承,从ES6开始,引入了class关键字,可以更加方便的定义和使用类。TypeScript作为JavaScript的超集,也是支持使用class关键字的&#xff0…

在早期的JavaScript开发中(ES5)我们需要通过函数和原型链来实现类和继承,从ES6开始,引入了class关键字,可以更加方便的定义和使用类。TypeScript作为JavaScript的超集,也是支持使用class关键字的,并且还可以对类的属性和方法等进行静态类型检测。

类的定义

我们来定义一个Person类:

class Person {// 定义类的属性name: stringage: number// 构造函数constructor(name: string, age: number) {this.name = namethis.age = age}// 定义类的方法running() {console.log(`${this.name} is running`);}
}
// 实例化
let cloud: Person = new Person('cloud', 18)
cloud.running()

我们可以声明类的属性:在类的内部声明类的属性以及对应的类型,如果类型没有声明,那么它们默认是any的;我们也可以给属性设置初始化值;在默认的strictPropertyInitialization模式下面我们的属性是必须初始化的,如果没有初始化,那么编译时就会报错;类可以有自己的构造函数constructor,当我们通过new关键字创建一个实例时,构造函数会被调用;构造函数不需要返回任何值,默认返回当前创建出来的实例;类中可以有自己的函数,定义的函数称之为方法;

类的继承

面向对象的其中一大特性就是继承,继承不仅仅可以减少我们的代码量,也是多态的使用前提。我们使用extends关键字来实现继承,子类中使用super来访问父类。我们来看一下Student类继承自Person:

class Student extends Person {sno: numberconstructor(name: string, age: number, sno: number) {super(name, age);this.sno = sno}studying() {console.log(`${this.name} is studying`);}
}let tifa: Student = new Student('tifa', 18, 123)
tifa.studying()

类的成员修饰符

在TypeScript中,类的属性和方法支持三种修饰符: public、private、protected,public 修饰的是在任何地方可见、公有的属性或方法,默认编写的属性就是public的;private 修饰的是仅在同一类中可见、私有的属性或方法;protected 修饰的是仅在类自身及子类中可见、受保护的属性或方法;

抽象类abstract

我们知道,继承是多态使用的前提。所以在定义很多通用的调用接口时, 我们通常会让调用者传入父类,通过多态来实现更加灵活的调用方式。但是,父类本身可能并不需要对某些方法进行具体的实现,所以父类中定义的方法,我们可以定义为抽象方法。

什么是 抽象方法? 在TypeScript中没有具体实现的方法(没有方法体),就是抽象方法。抽象方法,必须存在于抽象类中;抽象类是使用abstract声明的类;

抽象类有如下的特点:抽象类是不能被实例化(也就是不能通过new创建),抽象方法必须被子类实现,否则该类必须是一个抽象类;

// 定义抽象类和抽象方法
abstract class Shape {abstract getArea(): number
}// 子类需要实现抽象方法
class Circle extends Shape {private r: numberconstructor(r: number) {super();this.r = r}getArea(): number {return this.r * this.r * Math.PI;}
}

接口继承与实现

接口和类一样是可以进行继承的,也是使用extends关键字:并且我们会发现,接口是支持多继承的(类不支持多继承)

接口定义后,也是可以被类实现的(使用implements):如果被一个类实现,那么在之后需要传入接口的地方,都可以将这个类传入;这就是面向接口开发;

interface Animal {running: () => void
}// 接口可以继承其他接口,多个用逗号分隔
interface Person extends Animal {eating: () => void
}// 类可实现多个接口,多个用逗号分隔
class Student implements Person {eating(): void {console.log('student is eating')}running(): void {console.log('student is running')}
}

枚举类型

枚举类型是为数不多的TypeScript特性有的特性之一:枚举其实就是将一组可能出现的值,一个个列举出来,定义在一个类型中,这个类型就是枚举类型;

enum Direction {LEFT,RIGHT,TOP,BOTTOM
}function turnDirection(direction: Direction) {switch (direction) {case Direction.LEFT:console.log('向左转')break;case Direction.RIGHT:console.log('向右转')break;}
}

http://www.zhongyajixie.com/news/60686.html

相关文章:

  • 网站页面统计代码是什么爱站网seo综合查询工具
  • 网站脑图用什么做开发网站
  • 安庆做网站优化师和运营区别
  • 微站营销app
  • 广告平台有哪些 互联网搜索引擎优化结果
  • 做佩戴护身符的厂家网站营销型外贸网站建设
  • 网站中间内容做多大尺寸的网站如何快速被百度收录
  • 陕西省交通建设集团公司网站免费做推广的网站
  • 做护肤的网站有哪些网站设计优化
  • 水磨沟区做网站武汉百度搜索优化
  • 高级软件开发培训廊坊快速优化排名
  • wordpress中php.iniseo研究中心vip教程
  • 网站建设与管理维护 大学论文站长网站统计
  • 网站的优化推广方案天津百度推广公司
  • 广州学习网站建设seo网上培训
  • 织梦cms 做视频网站微信推广加人
  • 无锡优化网站排名磁力链 ciliba
  • 上海网站制作机构百度账号注销
  • 中国建设执业资格注册中心网站网络营销模式有哪些
  • 门户网站目标客户广告公司的业务范围
  • 电子商务网站后台如何在互联网推广自己的产品
  • 党校网站建设管理工作方案国内网站排名
  • 广告设计软件aiwin7优化大师免安装版
  • 阿里巴巴网站导航怎么做海南百度推广总代理商
  • 做网站的一般多少钱网站建设的基本
  • 新泰网站建设方案互联网全媒体广告代理
  • 刷移动端seo软件扬州百度seo公司
  • 软件下载网站源码行业关键词分类
  • 校园兼职信息发布网站开发论文湖南专业seo推广
  • 优秀的html5网站 2016百度站长平台工具