TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter

将JavaScript中的类作为头等项很重要的原因是:

  1. 类提供了有用的结构抽象
  2. 为开发人员提供一种一致的方式来使用类,而不是使用每个框架(emberjs,reactjs等)提供自己的版本。
  3. 面向对象的开发人员已经了解类。

最后,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

您可以具有静态成员以及静态函数。

访问修饰符

打字稿支持访问修饰符publicprivate以及protected其中确定的可访问性class如下所示构件:

可访问 public protected private
子类 没有
类实例 没有 没有

如果未指定访问修饰符,则它是隐式的,public因为它与JavaScript

TypeScript入门教程 之 类/抽象类/构造器/Getter/Setter相关推荐

  1. TypeScript 入门教程

    TypeScript 入门教程 分类 编程技术 什么是 TypeScript? TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集,扩展了JavaScri ...

  2. TypeScript入门教程 之 classes-emit

    TypeScript入门教程 之 classes-emit What's up with the IIFE 为该类生成的js可能是: function Point(x, y) {this.x = x; ...

  3. TypeScript入门教程 之 箭头函数

    TypeScript入门教程 之 箭头函数 亲切地称为粗箭头(因为->是细箭头并且=>是粗箭头),也被称为lambda函数(由于其他语言).另一个常用功能是胖箭头功能()=>some ...

  4. TypeScript入门教程 之 Promise

    TypeScript入门教程 之 Promise Promise 在Promise类的东西,存在于许多现代的JavaScript引擎,并可以很容易地polyfilled.承诺的主要动机是将同步样式错误 ...

  5. 超详细的TypeScript入门教程!

    在看这篇文章之前,我是强烈推荐TypeScript 入门教程这本书的.因为这本书它是:从 JavaScript 程序员的角度总结思考,循序渐进的理解TypeScript.文章来源也是该书,但听我一句话 ...

  6. 我写的第一本书《TypeScript 入门教程》

    阅读原文 持续了大半年的学习和写作,在今天终于告一段落了. 写书之旅 最初有写书的想法,是刚加入微软的时候. 由于工作中需要重度使用 TypeScript,所以我花了几天的时间研读了好几遍官方手册和中 ...

  7. TypeScript入门教程 之 const

    TypeScript入门教程 之 const const是ES6 / TypeScript提供的非常受欢迎的功能.它使您可以与变量保持不变.从文档以及运行时的角度来看,这都是很好的.要使用const只 ...

  8. TypeScript入门教程 之 解构

    TypeScript入门教程 之 解构 TypeScript支持以下形式的解构(以解构的名义命名,即分解结构): 对象分解 阵列解构 人们很容易将解构视为结构的逆.JavaScript中的结构化方法是 ...

  9. TypeScript入门教程 之 枚举 Enums

    TypeScript入门教程 之 枚举 Enums 枚举是一种组织相关值集合的方法.许多其他编程语言(C / C#/ Java)具有enum数据类型,而JavaScript没有.但是,TypeScri ...

最新文章

  1. 从ViewDragLayout中学到的一些事实
  2. centos 安装 openfire
  3. oracle 裸设备 ocr,裸设备建立RAC的OCR设备不一致的问题
  4. BigData之Hive beeline:beeline的简介、使用方法之详细攻略
  5. DOS命令解决端口冲突问题
  6. 一次性汇总了 30+ 字符串常用处理方法
  7. [BUUCTF-pwn]——picoctf_2018_are you root
  8. 数据分析中的两种偏差
  9. 【Java】利用递归求阶乘
  10. storage相关网站
  11. 结构梁配筋最牛插件_结构分析|结构抗震概念——强柱弱梁
  12. 计算机系系徽设计说明,系徽设计大赛策划书
  13. 学习RabbitMQ[上]
  14. 使用redis存储全球IP库
  15. 一个微型的操作系统内核 MiniOS
  16. NNI学习(一)介绍与安装
  17. Altium Designer布局布线时元器件移动
  18. openwrt设置语言的过程
  19. js控制浏览器窗口弹出、警告框、确认框
  20. 【C基础练习题】第一章:输入和输出 | 基础练习题 | 提供题解

热门文章

  1. WPF中的事件及冒泡事件和隧道事件(预览事件)的区别
  2. 深入了解ASP.NET运行内幕 .txt
  3. asp.net 2.0 防止密码框被清空的解决方案
  4. iOS7应用开发3、Objective-C
  5. Magento 安装教程
  6. EtherCAT是什么?
  7. 如何用Pygame写游戏(二十一)
  8. LeetCode 434. Number of Segments in a String
  9. 泛型类 0104 c#
  10. django-静态文件设置