TypeScript 学习三 类
1,类:
类是TypeScript的核心,大部分代码都是写在类里面;
声明:class 类名{ 属性; 方法(){};}
注意:类名首字母同样大写,但是方法不需要表明类型,直接写方法名加()即可;属性也不要声明类型;直接写属性名即可;
但是可以加上访问控制符public(类外类内都可访问),protected(类内和子类里可访问),private(类内访问);
用protected和private修饰的构造函数,不能被实例化;但是用protected修饰的可以被继承;
实例化:利用new关键字;
例: class Person{
name;
eat(){
console.log("eating");
}
}
var p1=new Person();
p1.name="zhangsna";
p1.eat();
构造函数:constructor,每次实例化时都会调用构造函数,类外只能用new可以调用;
class Person{
name; //声明属性
constructor(name : String){ //构造函数
this.name=name;
}
}
可以用另一种写法:
class Person{
constructor(public name:String){
//注意与constructor(name : String)不同,在构造函数处使用访问控制符要明确标明,加访问控制符是声明了name属性,不加则是没有声明name属性;
}
eat(){
console.log(this.name); //上边不加访问控制符是不会打出name的,会报错(因为不加访问控制符就是没声明name);
}
}
2,类的继承:extends和 super
子类继承了父类后,就会获得父类的所有属性和方法;
super的两个用法:都是调用父类的方法时用,分别是构造方法和非构造方法
当调用父类的构造方法时使用super;
class Employee extends Person{
constructor (name : String ,code : String){
super(name);
this.code=code;
}
code:String;
work(){
super.eat(); //当调用父类的非构造方法时
this.doWork();
}
private doWork(){ //将doWork()方法声明为private是为了在类外不能先调用,,防止不吃饭就干活,而是先让吃饭再干活;
}
}
3,类有时可以当作接口使用:(因为类可以创建类型)
class Point{
x : number;
y : number;
}
interface Point3d extends Point{
z : number;
}
let point3d : Point3d = {x : 1, y : 2 ,z : 3};
4,javascript中的函数,可以使用函数体外部的变量;当函数这么做时,我们说它‘捕获’了该变量;
let z = 100;
function addToZ(x , y){
return x+y+z;
}
TypeScript 学习三 类的更多相关文章
- 【TypeScript】TypeScript 学习 3——类
在 EcmaScript 6 中,我们将会拥有原生的类,而不是像现在通过原型链来实现.使用 TypeScript 我们能提前体验这一特性. 首先来看看一个简单的例子: class Greeter { ...
- PHP面向对象学习三 类的抽象方法和类
一个类中至少有一个方法是抽象的,我们称之为抽象类. 所以如果定义抽象类首先定义抽象方法. 1.类中至少有一个抽象方法 2.抽象方法不允许有{ } 3.抽象方法前面必须要加abstract 抽象类的几个 ...
- TypeScript学习笔记(三):类
类 在TypeScript中,类似于C#的结构,即一个文件中可以存在多个类,且文件名可以任意取,我们先看一个简单的类的示例. class Person { private name: string; ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Typescript 学习笔记三:函数
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Typescript学习笔记(四)class 类
typescript的类,与c#,java等语言的类类似.也是包含了一大部分的es6的实现.我会用最通俗的语言讲一下对coding有用的地方. class Greeter { greeting: st ...
- TypeScript学习笔记(四) - 类和接口
本篇将介绍TypeScript里的类和接口. 与其他强类型语言类似,TypeScript遵循ECMAScript 2015标准,支持class类型,同时也增加支持interface类型. 一.类(cl ...
- TypeScript 学习一 参数,函数,析构表达式
1,TypeScript是由谷歌开发的,并且新出的Angular2框架就是谷歌公司由TypeScript语言编写的,所以现在TypeScript是有微软和谷歌一起支持的: 2,TypeScript在j ...
随机推荐
- Remote验证及其改进(附源码)
Remote验证及其改进(附源码) 表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介 ...
- Newton迭代法-C++
牛顿迭代法: 设定x*是方程f(x)=0的根,选取x0作为x*的近似值,过点(x0, f(x0))做曲线f(x)=0的切线L,L的方程y=f(x0)+f'(x0)(x-x0),求出L与x轴焦点的横坐标 ...
- 2013.4.A
=-=最近简直忙疯了.....两眼泪汪汪的...一个星期又磨磨蹭蹭的刷了一套 1.java_c 题1 Java vs C++ [问题描述] Java和C++两种语言的辩手都可以相互争论数小时去证明他们 ...
- 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128)
安装mysql-python报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal n ...
- [转]ARM64 Function Calling Conventions
from apple In general, iOS adheres to the generic ABI specified by ARM for the ARM64 architecture. H ...
- 用django搭建一个简易blog系统(翻译)(三)
06. Connecting the Django admin to the blog app Django 本身就带有一个应用叫作Admin,而且它是一个很好的工具 在这一部分,我们将要激活admi ...
- StringEscapeUtils.unescapeHtml的使用
在做代码高亮时,从数据库中取出代码如下(节选): <pre class="brush: java;"> 需要的应该是<pre class=\"brush ...
- 空格 在不同浏览器中显示距离不一致问题解决方法
在ie.firefox.chrome浏览器上显示的效果不太一样,主要是前面的空格宽度不同. 网上资料说不同的浏览器会有不同的默认字体,一般 IE默认字体都是宋体,而firefox和chrome的默 ...
- 一键保存网页为PDF
一键保存网页为PDF_V1.2 福利来了,“一键保存网页为PDF”发布以来最给力的功能来了: 1.支持大部分浏览器了(添加书签方式),测试IE8\IE9.谷歌.火狐可用: 2.转换组件“ephtm ...
- 创建 Mac OS X 10.9 USB 安装盘
通过 App Store 下载最新的 OS X 10.9 在“应用程序”目录找到下载的 OS X 10.9 安装文件,选中并鼠标右键,菜单中选择“显示包内容” 弹出的 Finder 中进入 Conte ...