《Typecript 入门教程》 1、类
类
使用class + 类名 即可定义一个类,一个类中通常有3个成员:属性、构造函数、方法;
在类内部引用属性或方法事使用this调用,它表示我们访问的是类的成员。
我们使用new
构造了Greeter类的一个实例。 它会调用之前定义的构造函数,创建一个Greeter
类型的新对象,并执行构造函数初始化它。
class People{
// 1.声明 name 变量
public name:string; // 2.构造函数
// 构造函数在外部无法直接访问
// 只在实例化的时候才执行,且仅仅执行 1 次
// 构造函数用于在实例化某对象时必须添加某属性
// 本例:实例化People时必须添加姓名,否则报错
constructor(name){
this.name=name;
}
// 3.方法
sayname(){
console.log(this.name);
}
} /*
*使用new对类进行实例化
*/
let li=new People('li');
// 实例化 xiao 时没有设置 name 属性值,报错
let xiao=new People();
li.sayname(); class Stu{
// 和上面例子对比可将 name 声明直接移动至 constructor 内
constructor(public name:string,age:string){ }
// constructor内添加 public/private/protected 对变量进行声明后此处可用 this.name调用,否则不可调用
// age 没有声明所以无法调用
say(){
console.log(this.name);
console.log(this.age);
}
} // 必须设置 name 属性值
let chen=new Stu();
构造函数要求实例化时必须设置name属性值,没有设置值具体报错信息如下:
继承
在TypeScript里,我们使用extends
来创建子类。你可以看到Horse
和Snake
类是基类Animal
的子类,并且可以访问其属性和方法。
这个例子演示了如何在子类里可以重写父类的方法。 Snake
类和Horse
类都创建了move
方法,重写了从Animal
继承来的move
方法,使得move
方法根据不同的类而具有不同的功能。 注意,即使tom
被声明为Animal
类型,因为它的值是Horse
,tom.move(34)
调用Horse
里的重写方法:
包含constructor函数的派生类必须调用super()
,它会执行基类的构造方法。
super的用法说明:
constructor(name:string , sid:string){
super(name);
}
2. super.functonName( ) 可以调用父类的其它方法
class Animal{
public name:string; constructor(name:string){
this.name = name;
}
move(distanceMetres:number = 0){
console.log(`${this.name} moved ${distanceMetres}m`);
}
} class Snake extends Animal{
public age:string;
constructor(name:string,age:string){
super(name);
this.age=age;
}
move(distanceMetres=5){
console.log("snake...");
super.move(distanceMetres);
}
sayage(age){
alert(`${this.age}`);
}
} class Horse extends Animal{
constructor(name:string){
super(name);
}
move(distanceMetres=10){
console.log("horse...");
super.move(distanceMetres);
}
} let sam = new Snake('xiaobao','30');
let tom:Animal = new Horse('tommy'); // sam.move();
sam.sayage(this.age);
// console.log(sam.age);
// tom.move(150);
《Typecript 入门教程》 1、类的更多相关文章
- 《Typecript 入门教程》 3、接口
转载:<TypeScript 中文入门教程> 3.接口 介绍 TypeScript的核心原则之一是对值所具有的shape进行类型检查. 它有时被称做“鸭式辨型法”或“结构性子类型化”. 在 ...
- 《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly
声明类的属性和方法时可以设置使用访问控制符,访问控制符设置类的属性和方法能不能在类的外部被访问 1. 默认为 public,使用public定义的属性和方法在类的内部和外部都可以访问 2. priva ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- 转载:TypeScript 简介与《TypeScript 中文入门教程》
简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- WCF入门教程(五)配置文件
WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...
- WCF入门教程(三)定义服务协定--属性标签
WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...
- WCF入门教程(二)如何创建WCF服务
WCF入门教程(二)从零做起-创建WCF服务 通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) ...
- WCF入门教程(一)简介
WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foundation), 是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NE ...
随机推荐
- 使用js将Unix时间戳转换为普通时间
var unixtime=1358932051;formatTime (time) { let unixtime = time let unixTimestamp = new Date(unixtim ...
- DS26C31M和DS26C32AM
DS26C31M是产生差分信号的芯片,实际使用的时候,测得在5V供电的情况下,输出+和输出-的压差是5V其中输出+和输入的特性相同. DS26C32AM是接收差分信号的芯片,与DS26C31M可以向配 ...
- idea 如何将本地代码上传到github
1. 首先切换到项目根目录下 执行 git init 2. 点击项目右键->Git->Repository->Remotes->编辑URL 到github代码地址.
- Windows 硬件开发人员怎样选择代码签名证书类型
在建立 Windows 开发人员中心硬件仪表板帐户之前,你需要获取代码签名证书以保护数字信息的安全.此证书是用于建立你的公司对你所提交代码的所有权的接受标准.它让你可以用数字形式签署 PE 二进制文件 ...
- type="application/javascript"
type="application/javascript" html script 标签中 type有如下这些值,请问分别是什么意思,在什么情况下使用? type="te ...
- nyoj 911 Registration system(map)
Registration system 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 A new e-mail service "Berlandesk&q ...
- ZOJ 3201 树形背包问题
题目大意: 0~n-1号这n个点,每个点有个权值,由无向边形成了一棵树,希望在这棵树上找到一棵长为m的子树使总的权值最小 基本的树形背包问题 令dp[u][j] 表示u号节点对应子树中有j个节点所能得 ...
- HDU 1253 三维数组的图上找最短路
题目大意: 从三维空间的(0,0,0)出发到(a-1,b-1,c-1),每移动一个都要时间加一,计算最短时间 根据六个方向,开个bfs,像spfa那样计算最短路径就行了,但是要1200多ms,也不知道 ...
- 使用ajax传值,后台乱码
spring mvc,使用ajax传值,后台发现是乱码 解决方法: 后台的方法里加入 request.setCharacterEncoding("UTF-8"); 就行了 我前 ...
- kafka streams
https://docs.confluent.io/current/streams/concepts.html#ktable