博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Typecript 入门教程》 1、类
阅读量:6279 次
发布时间:2019-06-22

本文共 2444 字,大约阅读时间需要 8 分钟。

使用class + 类名 即可定义一个类,一个类中通常有3个成员:属性、构造函数、方法;

在类内部引用属性或方法事使用this调用,它表示我们访问的是类的成员。

我们使用new构造了Greeter类的一个实例。 它会调用之前定义的构造函数,创建一个Greeter类型的新对象,并执行构造函数初始化它。

1 class People{ 2     // 1.声明 name 变量 3     public name:string; 4  5     // 2.构造函数 6     // 构造函数在外部无法直接访问 7     // 只在实例化的时候才执行,且仅仅执行 1 次 8     // 构造函数用于在实例化某对象时必须添加某属性 9     // 本例:实例化People时必须添加姓名,否则报错10     constructor(name){11         this.name=name;12     }13     // 3.方法14     sayname(){15         console.log(this.name);16     }17 }18 19 /*20  *使用new对类进行实例化21 */22 let li=new People('li');23 // 实例化 xiao 时没有设置 name 属性值,报错24 let xiao=new People();25 li.sayname();26 27 28 29 class Stu{30     // 和上面例子对比可将 name 声明直接移动至 constructor 内31     constructor(public name:string,age:string){32 33     }34     // constructor内添加 public/private/protected 对变量进行声明后此处可用 this.name调用,否则不可调用35     // age 没有声明所以无法调用36     say(){37         console.log(this.name);38         console.log(this.age);39     }40 }41 42 // 必须设置 name 属性值43 let chen=new Stu();

构造函数要求实例化时必须设置name属性值,没有设置值具体报错信息如下:

 

继承

在TypeScript里,我们使用extends来创建子类。你可以看到HorseSnake类是基类Animal的子类,并且可以访问其属性和方法。

这个例子演示了如何在子类里可以重写父类的方法。 Snake类和Horse类都创建了move方法,重写了从Animal继承来的move方法,使得move方法根据不同的类而具有不同的功能。 注意,即使tom被声明为Animal类型,因为它的值是Horsetom.move(34)调用Horse里的重写方法:

包含constructor函数的派生类必须调用super(),它会执行基类的构造方法。

super的用法说明:

1. 子类的构造函数必须调用父类的构造函数,就是这么规定的
constructor(name:string , sid:string){        super(name);  }

2. super.functonName( ) 可以调用父类的其它方法

1 class Animal{ 2     public name:string; 3  4     constructor(name:string){ 5         this.name = name; 6     } 7     move(distanceMetres:number = 0){ 8         console.log(`${
this.name} moved ${distanceMetres}m`); 9 }10 }11 12 13 class Snake extends Animal{14 public age:string;15 constructor(name:string,age:string){16 super(name);17 this.age=age;18 }19 move(distanceMetres=5){20 console.log("snake...");21 super.move(distanceMetres);22 }23 sayage(age){24 alert(`${
this.age}`);25 }26 }27 28 class Horse extends Animal{29 constructor(name:string){30 super(name);31 }32 move(distanceMetres=10){33 console.log("horse...");34 super.move(distanceMetres);35 }36 }37 38 let sam = new Snake('xiaobao','30');39 let tom:Animal = new Horse('tommy');40 41 // sam.move();42 sam.sayage(this.age);43 // console.log(sam.age);44 // tom.move(150);

 

转载于:https://www.cnblogs.com/fighxp/p/7742926.html

你可能感兴趣的文章
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
《Exchange Server 2010 SP1/SP2管理实践》——2.4 部署外部网络环境
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
《计算广告:互联网商业变现的市场与技术》一第一部分 在线广告市场与背景...
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
《Arduino家居安全系统构建实战》——1.5 介绍用于机器学习的F
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>