TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter
TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter
将JavaScript中的类作为头等项很重要的原因是:
- 类提供了有用的结构抽象
- 为开发人员提供一种一致的方式来使用类,而不是使用每个框架(emberjs,reactjs等)提供自己的版本。
- 面向对象的开发人员已经了解类。
最后,JavaScript开发人员可以拥有class
。在这里,我们有一个称为Point的基本类:
class Point {x: number;y: number;constructor(x: number, y: number) {this.x = x;this.y = y;}add(point: Point) {return new Point(this.x + point.x, this.y + point.y);}
}var p1 = new Point(0, 10);
var p2 = new Point(10, 20);
var p3 = p1.add(p2); // {x:10,y:30}
此类在ES5发射上生成以下JavaScript:
var Point = (function () {function Point(x, y) {this.x = x;this.y = y;}Point.prototype.add = function (point) {return new Point(this.x + point.x, this.y + point.y);};return Point;
})();
这是一种相当惯用的传统JavaScript类模式,现在已经成为一种一流的语言构造。
继承
TypeScript中的类(与其他语言一样)使用关键字支持单继承extends
,如下所示:
class Point3D extends Point {z: number;constructor(x: number, y: number, z: number) {super(x, y);this.z = z;}add(point: Point3D) {var point2D = super.add(point);return new Point3D(point2D.x, point2D.y, this.z + point.z);}
}
如果您的类中有构造函数,则必须从构造函数中调用父构造函数(TypeScript会向您指出)。这样可以确保设置需要放置的东西this
。调用之后,super
您可以在构造函数中添加任何您想做的事情(在这里我们添加了另一个member z
)。
请注意,您可以轻松地覆盖父成员函数(在此我们覆盖add
),并且仍在成员中使用父类的功能(使用super.
语法)。
static
TypeScript类支持static
该类的所有实例共享的属性。放置(和访问)它们的自然位置是类本身,而TypeScript就是这样做的:
class Something {static instances = 0;constructor() {Something.instances++;}
}var s1 = new Something();
var s2 = new Something();
console.log(Something.instances); // 2
您可以具有静态成员以及静态函数。
访问修饰符
打字稿支持访问修饰符public
,private
以及protected
其中确定的可访问性class
如下所示构件:
可访问 |
public
|
protected
|
private
|
---|---|---|---|
类 | 是 | 是 | 是 |
子类 | 是 | 是 | 没有 |
类实例 | 是 | 没有 | 没有 |
如果未指定访问修饰符,则它是隐式的,public
因为它与JavaScript
TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter相关推荐
- TypeScript 入门教程
TypeScript 入门教程 分类 编程技术 什么是 TypeScript? TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集,扩展了JavaScri ...
- TypeScript入门教程 之 classes-emit
TypeScript入门教程 之 classes-emit What's up with the IIFE 为该类生成的js可能是: function Point(x, y) {this.x = x; ...
- TypeScript入门教程 之 箭头函数
TypeScript入门教程 之 箭头函数 亲切地称为粗箭头(因为->是细箭头并且=>是粗箭头),也被称为lambda函数(由于其他语言).另一个常用功能是胖箭头功能()=>some ...
- TypeScript入门教程 之 Promise
TypeScript入门教程 之 Promise Promise 在Promise类的东西,存在于许多现代的JavaScript引擎,并可以很容易地polyfilled.承诺的主要动机是将同步样式错误 ...
- 超详细的TypeScript入门教程!
在看这篇文章之前,我是强烈推荐TypeScript 入门教程这本书的.因为这本书它是:从 JavaScript 程序员的角度总结思考,循序渐进的理解TypeScript.文章来源也是该书,但听我一句话 ...
- 我写的第一本书《TypeScript 入门教程》
阅读原文 持续了大半年的学习和写作,在今天终于告一段落了. 写书之旅 最初有写书的想法,是刚加入微软的时候. 由于工作中需要重度使用 TypeScript,所以我花了几天的时间研读了好几遍官方手册和中 ...
- TypeScript入门教程 之 const
TypeScript入门教程 之 const const是ES6 / TypeScript提供的非常受欢迎的功能.它使您可以与变量保持不变.从文档以及运行时的角度来看,这都是很好的.要使用const只 ...
- TypeScript入门教程 之 解构
TypeScript入门教程 之 解构 TypeScript支持以下形式的解构(以解构的名义命名,即分解结构): 对象分解 阵列解构 人们很容易将解构视为结构的逆.JavaScript中的结构化方法是 ...
- TypeScript入门教程 之 枚举 Enums
TypeScript入门教程 之 枚举 Enums 枚举是一种组织相关值集合的方法.许多其他编程语言(C / C#/ Java)具有enum数据类型,而JavaScript没有.但是,TypeScri ...
最新文章
- 从ViewDragLayout中学到的一些事实
- centos 安装 openfire
- oracle 裸设备 ocr,裸设备建立RAC的OCR设备不一致的问题
- BigData之Hive beeline:beeline的简介、使用方法之详细攻略
- DOS命令解决端口冲突问题
- 一次性汇总了 30+ 字符串常用处理方法
- [BUUCTF-pwn]——picoctf_2018_are you root
- 数据分析中的两种偏差
- 【Java】利用递归求阶乘
- storage相关网站
- 结构梁配筋最牛插件_结构分析|结构抗震概念——强柱弱梁
- 计算机系系徽设计说明,系徽设计大赛策划书
- 学习RabbitMQ[上]
- 使用redis存储全球IP库
- 一个微型的操作系统内核 MiniOS
- NNI学习(一)介绍与安装
- Altium Designer布局布线时元器件移动
- openwrt设置语言的过程
- js控制浏览器窗口弹出、警告框、确认框
- 【C基础练习题】第一章:输入和输出 | 基础练习题 | 提供题解