本文虽然是学自官方教程而来,但是也融入了自己的理解,而且对官方的例子做了一些修改

/*类 面向对象编程的一大核心
使用C#、Java进行编程的朋友肯定已经是不能够再熟悉了
TypeScript的类与C#的类有着很高的相似度,但也有着些许不同
*///构造函数不同,与类同名不再是构造函数而是方法
//构造函数则是constructor
class Animal {//构造函数constructor(public name: string) {this.name = name}//方法
    Animal() {console.log(`say hi ${this.name}`);}
}
let a1 = new Animal("小明");
a1.Animal();//继承与C#中没有什么区别  使用extends关键字
//有则必须Super父类的构造函数
class Log extends Animal {constructor(public name: string, public age: number) {super(name);this.age = age;}
}
let l1 = new Log("旺财", 10);
//因为 log父类是Animal ,所以天生log就有Name字段与Animal方法
l1.Animal()//修饰符 与C#类似一共有 private public protected readonly
//无需多言相信大家都懂得这是什么意思
//有趣的是  TypeScript使用的是兼容性类型系统 ,当我们比较两种
//不同类型的时候,并不在乎它们从何而来,如果所有的成员类型都是
//兼容的,那它们就是相同的/*
还有一个有趣的是,在上面的代码中我并没有写Name字段和Age字段,
构造函数中的参数加了修饰符 public 。这就是TypeScrpt中的参数属
性。name参数同样也是属性
*//*
存取器  也就是Get;Set;  C#也叫做属性,用来控制字段的访问与设置
下面这个代码相信大家都可以看的懂是做什么
*/class Employee {private _fullName: string;get fullName(): string {return this._fullName;}set fullName(name: string) {if (name == "xxxxx") {console.log("你这样做是不对的");} else {this._fullName = name;}}
}
let em = new Employee();
em.fullName;/*
静态成员,嗯这也很容易理解的,它存在于类上而不是类的实例
*/
class Grid {static origin: string = "staticvalue";
}
Grid.origin;/*
抽象类与抽象方法 abstract关键字 用过C#的朋友也一样知道这是什么,如果不
知道……就去面壁吧
*/
abstract class Animal2 {abstract makeSound(): void;
}class Log2 extends Animal2 {makeSound(): void {console.log("我必须实现");}
}

转载于:https://www.cnblogs.com/LiangSW/p/6254330.html

TypeScript 素描 - 类相关推荐

  1. 【TypeScript】类的使用

    类 下面看一个使用类的例子: class Greeter {greeting: string;constructor(message: string) {this.greeting = message ...

  2. TypeScript 素描 - 模块解析、声明合并

    模块解析 模块解析有两种方式 相对方式  也就是以/或 ./或-/开头的,比如import jq  from "/jq" 非相对方式  比如 import model  from ...

  3. TypeScript 素描 - 接口

    /* 接口 C#写多了,接口也自然也是理解的.不过TypeScript中的接口与 C#中的还是有些区别的 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约 *///为方法的参数做契约 in ...

  4. typescript的类class 和 类的访问修饰符

    类的基本使用 class person {name:stringage:numberconstructor(name:string,age:number){//构造函数this.name = &quo ...

  5. TypeScript的类

    介绍 类这个概念基本是所有面向对象编程语言都具有一个概念,例如Java.Python等:在JavaScript中ES6 之前是没有类这个概念的,对于熟悉面向对象来程序猿来说有些棘手,因为他们用的都是基 ...

  6. TypeScript 素描 - 函数

    /* 函数和javaScript并没有太大差别,只是增加了额外的功能,使函数有 更为强大的功能而且更易用使用 *///现在支持函数的参数指定类型,在前面的博文中大家应该已经看到 //还可以指定函数的返 ...

  7. TypeScript - 不止稳,而且快

    前言 关于 TypeScript 是什么,应该大部分人都已经知道了,但是在这儿,还是摘抄一下知乎的回答: TypeScript 是 JavaScript 的强类型版本.然后在编译期去掉类型和特有语法, ...

  8. TypeScript入门(三)面向对象特性

    一.类(Class) 类是ts的核心,使用ts开发时,大部分代码都是写在类里面. 1.类的声明 多个对象有相同的属性和方法,但是状态不同. 声明类的属性和方法时可以加 访问控制符,作用是:类的属性和方 ...

  9. 【超详细教程】如何使用TypeScript和GraphQL开发应用

    GraphQL是一个专为构建灵活的API而生的强大的查询语言.它允许您为数据定义类型系统,因此在执行查询时,它仅返回所需的数据. 与TypeScript一起使用时,GraphQL可以为开发人员提供更好 ...

  10. typescript总结

    1.什么是typescript: 它是一个强类型的JavaScript超集,typescript是拥有类型的javaScript超集, 它可以编译成普通\干净\完整的js代码 ES3,js所拥有的内容 ...

最新文章

  1. 诺奖得主本庶佑:CNS这些顶刊观点有九成不正确,不要盲从迷信,搞科研做到六个C更重要...
  2. php单屏网站源码,关于原生js实现类似fullpage的单页/全屏滚动的方法
  3. 应用内评分_游戏评分低,怎么办?
  4. 【超时原因】1047 Student List for Course (25 分)
  5. 重邮2021计算机复试,2021复试调剂信息七
  6. 标准评分卡分数计算原理_评分卡的形式、刻度及应用场景
  7. 数字信号处理实验(三):离散时间傅里叶变换
  8. matlab icol,Matlab 图像处理相关函数命令大全
  9. asp exce l连接字符串_C++基础知识篇:C++ 字符串
  10. 智能android电视更换播放器,GitHub - qfwc258/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
  11. (转)《2017中国人工智能创新公司50强》榜单
  12. 为什么做了梦第二天想不起来_做过的梦为什么总是想不起来?
  13. vscode插件remote-ssh安装及ssh错误
  14. 计算矩阵A与矩阵B的欧式距离
  15. 用微信小程序发红包的两种方法
  16. esir openwrt x86_惠普 小欧S01 伪开箱及爱快 虚拟机+openwrt 软路由安装教程
  17. ubuntu华硕Z87-plus主板网卡驱动
  18. Java实现MD5加密解密
  19. STM32—4线SPI驱动SSD1306 OLED
  20. maya导出带有alpha通道的动画

热门文章

  1. PHP学习笔记四(超级全局变量 和 魔术常量)
  2. git 基于master分支 创建其他本地分支,并关联
  3. Layui layui-soul-able 组件 表格列进行拖拽
  4. php 7.4 Array and string offset access syntax with curly braces is deprecated
  5. ProGuard的各种参数说明
  6. 硬盘出错,导致文件坏了
  7. 代码管理学:域名、产品名、应用名等都不是你能决定的,要上报备案
  8. 吾以为,最适合入门的语言是Java
  9. 手机应用宝占用了8G
  10. 管理感悟:先做事,后做人